首先,需要统一一个知识点 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.混合