碎碎念
学JS好几个月了,对于原型链这块总是苦不堪言,总想着把当初设计这个的人的思路想明白,有没有铁汁儿和我一样,图画了好多,旋转连线闭着眼,但是最终我还是格局小了,因为根本画不明白🤣 遂找了几篇大佬的文章,学学人家的格局
正文
最终结果:
* 红色的是实例对象指向原型对象的原型链 隐式链 最终都指向null ---最常用
绿色的是构造函数指向原型对象的链 显示链 ---理解用
* 黄色的是实例对象或者构造函数指向的构造器,最终都指向Function() ---次常用
例题验证
eg1
console.log(Function instanceof Object); // true console.log(Object instanceof Function); // true //函数是对象构造的 对象也是函数构造的,俩者即是函数也是对象
A instanceof B的底层原理是判断B的原型对象(显示)是否在A的原型链(隐式)上。
(就是判断B的绿色所指的地方,在不在A的红色所指的地方)
Object的原型Object.prototype在Function的原型链上,而且刚好是原型链的最后一个位置。Function的原型对象Function.prototype也在Object的原型链上。
图1 JS原型链终极奥义
参考:认真看一下午!!!很值!
帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)_码飞_CC的博客-CSDN博客