混淆“对象.__ proto__ === Function.prototype”返回“true”

时间:2017-03-19 05:16:04

标签: javascript function object prototype

我一直认为javascript中的函数是对象,Function.__proto__等于Object.prototype。但是当我在chrome控制台中输入以下代码时,输​​出是

> Function.__proto__ === Object.prototype;
> false
> Object.__proto__ === Function.prototype;
> true

我现在很困惑。函数是否继承自对象?或者它是相反的?

1 个答案:

答案 0 :(得分:2)

Object是一个函数(您可以使用new Object()),因此:

Object.__proto__ === Function.prototype // true

同样,Function是一个函数(您可以使用new Function()),因此:

Function.__proto__ === Function.prototype // true

如果我们深入一级,所有函数都是对象,因此:

Function.__proto__.__proto__ === Object.prototype // true