js中Function和Object的关系

关于原型链的知识,我们知道原型链的顶端是null。在原型链中Object构造函数和Function构造函数的位置如下图。所以会出现 Function instanceof Object 和 Object instanceof Function 的值都为true的情况,还有一些指向的问题

圆代表对象或函数  ,,OP和FP(函数)是两个特殊的对象

方框代表属性

(1)先解释Function instanceof Object为什么会是true,本质上Function instanceof Object是检测Function的原型链上是否有Object.prototype。从图上可以看到

Function的原型链:Function.__proto__ (FP)----->Function.__proto__.__proto__(OP)----> Function.__proto__.__proto__(null)。

Object.prototype 就是 Function.__proto__.__proto__(OP),所以Function instanceof Object值为true。另外一种情况同理。


(2)图上可以看出下面这个关系
Object.prototype === Object.__proto__.__proto__

Function.prototype === Function.__proto__ === Object.__proto__

Function.prototype.__proto__ === Object.prototype

(3)另外还有,Function.constructor === Function  ,Obect.constructor === Function这些,这样来看的话Object又是Function的一个实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值