js类和对象,继承(6中方式)

博客:

https://www.cnblogs.com/ranyonsue/p/11201730.html

视频:

https://www.bilibili.com/video/BV1iK4y1h76D/?spm_id_from=333.788.recommend_more_video.1

https://www.bilibili.com/video/BV1Ki4y1L7dY?from=search&seid=15593733464696966012

构造函数继承父类型的属性。

原型对象继承了父类型的方法。

1 父构造函数继承属性。

function Father(a,b){ this.uname= uname; this.age= age;}

function Son(a,b){ Father.call(this,a,b)} //1调用父构造函数,把父构造函数的this改为子构造函数的this,可以添加到里面

Father.prototype.money = function() { console.log(1000);}

Son.prototype = Father.prototype//修改子类的,父原型对象也会跟着一起,所以不行。

new Father的实例对象。

Son.prototype = new Father(); 

Son.prototype.exam() = function() {}

son的prototype的constructor直向 确实 Father,利用对象方式修改原型,需要指回来。

Son.prototype.constructor = Son;

1 属性: 构造函数继承。(this调用)

2 方法: 原型链继承(新实例的原型等于父类的实例)

3 组合继承(构造函数继承 和原型链继承)

4  原型式继承 (重点:用一个函数包装一个对象,然后返回这个函数的调用,这个函数就变成了个可以随意增添属性的实例或对象。object.create()就是这个原理。)

5 寄生式继承。(就是给原型式继承外面套了个壳子。)

6 寄生组合式继承(常用。)(在函数内返回对象然后调用)

原文地址:https://www.cnblogs.com/hacker-caomei/p/14290773.html