所谓构造函数,是生成一个对象的模板,是生成对象的函数。一个构造函数,可以生成多个实例对象,每个实例对象都有相同的结构。
接以上的例子,当你使用new操作符调用Keith构造函数时,会经历以下步骤:
1.创建一个空对象,作为将要返回的实例对象
2.将空对象的原型指向构造函数的prototype属性,也就是Keith构造函数的prototype属性。
3.将空对象赋值给构造函数内部的this关键字,也就是this关键字会指向实例对象。
4.开始执行构造函数内部的代码。
正确的逻辑应该是
- person1实例对象的原型指向了Keith.prototype。
- Keith的原型指向了Function.prototype。
- Function.prototype的原型指向了Object.prototype。
- Object.prototype的原型指向了Null。