JS继承三种方式的理解prototype, call/apply, 混用
首先,需要统一一个知识点 new一个对象的四个过程
1、创建一个空对象
1 |
|
2、让Person中的this
指向obj,并执行Person的函数体
1 |
|
3、设置原型链,将obj的__proto__
成员指向了Person函数对象的prototype
成员对象
1 |
|
4、判断Person的返回值类型,如果是值类型,返回obj。如果是引用类型,就返回这个引用类型的对象。
1 2 3 4 |
|
其次是, call/apply的基本理解
new一个对象的第三点会排除一些疑惑。
接下来是继承的三种方式
1.原型链方式
结合new的操作 Animal.prototype.__proto__ = Dog.prototype, 即继承了Dog的wang方法
Animal1.__proto__ = Dog.prototype
2.call/apple
call将this指向当前this
3.混合