今天在v2ex的javascript分区摸鱼的时候撇到一则提到关于原型链的,忽然大腿一拍,这个不就是自己大二那会儿看弃坑的文章么,
“深入理解javascript原型和闭包(完结)”博客园链接:https://www.cnblogs.com/wangfupeng1988/p/3977924.html
那会儿自己理解吃力时后来又从下面两篇普及到了“函数对象和普通对象”的概念:
“最详尽的 JS 原型与原型链终极详解,没有「可能是」”简书链接:https://www.jianshu.com/p/dee9f8b14771
“最详尽的 JS 原型与原型链终极详解记录”简书链接:https://www.jianshu.com/p/661ca3f44b08
——如今再接触这篇启蒙文,便把自己以前理解的图就着简化了一下,简化后的图如下:
console.log(f1.__proto__ == Foo.prototype) //true
console.log(Foo.prototype.__proto__ == Object.prototype) //true 说明Foo.prototype是一个普通对象
console.log(Object.prototype.__proto__ == null) // true
至此一条原型链的__proto__结束
ps:比起旧图把特例用艳色标注,这张更注重了分类规划,特例直接用看就行,颜色用于在强化分类上。
顺带一提:这图是用processon在线画的,地址:https://www.processon.com/
[然后,在分享一下自己时不时能学到前端知识的地儿(以下排序不分先后)]:
csdn、v2ex、npm 、github 、SegmentFault、简书、博客园、开源中国、fly36前端网、掘金、stackoverflow、MDN