书接上文[[JS] javascript中的原型链02 prototype&constructor](https://segmentfault.com/a/1190000043925349)

为了逻辑关系的清晰,我们去掉表示constructor的线条,加上Object对象,用.__proto__到达原型链的终点null。

image.png
javascript中原型链的终点是null,(Object.prototype.__proto__ === null这就是原型链的终点)

还有一个特殊的关系要注意
Object.__proto__ === Function.prototype (上图的橙黄色线条)

这之后,我们分别从实例对象和普通对象出发,上溯到原型链的终点。(下图中新增的p2,以及新增的两条橙黄色线条)

实例对象:
p1.__proto__.__proto__.__proto__ === null;

解释:
p1.__proto__ === Person.prototype;
Person.prototype.__proto__ === Object.prototype;
Object.prototype.__proto__ === null;

普通对象:
p2.__proto__.__proto__ === null;

解释:
p2.__proto__ === Object.prototype;
Object.prototype.__proto__ === null;

(观察下图从p1、p2出发的.__proto__一直到null的路线)
image.png

上面这张图就是JS中完整的原型链示意了。

完结。

同步更新到自己的语雀
https://www.yuque.com/dirackeeko/blog/gq82skuhh1lyybr1


DiracKeeko
125 声望2 粉丝