原型和原型链

237 阅读1分钟

let person = new Person后,就获得了一个实列person。

1、person有一个 __proto__属性,person.__proto__指向Person.prototype,两者是相等的。

2、Person有一个prototype属性,Person.prototype指向Person.prototype构造器原型。而在构造器原型Person.prototype上有一个construtor属性,Person.prototype.construtor又指向了Person

3、构造器原型Person.prototype__proto__属性,Person.prototype.__proto__指向Object.prototype,即Objectprototype属性的Object.prototype指向。Object.prototype=Person.prototype.__proto__=person__proto__.__proto__.

4、Object的属性prototypeObject.prototype指向Object.prototype,但Object.prototype的属性construtor指向Object

5、处于最顶级的是null,一切原型的最终指向皆归于nullObject.prototype.__proto__=Person.prototype.__proto__.__proto__=person__proto__.__proto__.__proto__=null。当一个实例上的属性在null上找不到,那就是没有这个属性。