书接上文[[JS] javascript中的原型链02 prototype&constructor](https://segmentfault.com/a/1190000043925349)
为了逻辑关系的清晰,我们去掉表示constructor的线条,加上Object对象,用.__proto__到达原型链的终点null。
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的路线)
上面这张图就是JS中完整的原型链示意了。
完结。
同步更新到自己的语雀
https://www.yuque.com/dirackeeko/blog/gq82skuhh1lyybr1
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。