美文网首页
JS Function与Object关系

JS Function与Object关系

作者: huanghaodong | 来源:发表于2018-09-29 18:49 被阅读0次
image.png

Function.constructor === Function;
Function.proto === 匿名函数;
Function.prototype === 匿名函数;
说明Function是Function自己的实例对象。

Object.constructor === Function;
Object.proto === Function.prototype;
这么一看,Object就是Function的实例对象。
但是又有,Function.prototype.proto === Object.prototype;的关系 。

另外:[ ] instanceof Function 为什么返回false?
因为,instanceof运算时会递归查找L的原型链,即L.proto.proto.proto.proto...直到找到了或者找到顶层为止,一句话,instanceof原理就是检测左侧的proto原型链上,是否存在右侧的prototype原型,存在则返回true,否则返回false。

image.png
[]的原型链上不存在Function的原型,所以[ ] instanceof Function 返回false。
另外可以看出,所有引用类型的原型链上必然存在Object的原型,所以[] instanceof Object返回true

相关文章

网友评论

      本文标题:JS Function与Object关系

      本文链接:https://www.haomeiwen.com/subject/tkzwwftx.html