【发布时间】:2017-08-10 12:35:24
【问题描述】:
我一直认为javascript中的函数是对象,Function.__proto__等于Object.prototype。但是当我在 chrome 控制台中输入以下代码时,输出是
> Function.__proto__ === Object.prototype;
> false
> Object.__proto__ === Function.prototype;
> true
我现在很困惑。函数是否继承自对象?还是相反?
【问题讨论】:
-
@TonyStark 几乎零个对象继承自
Object。他们继承自Object.prototype。 -
说“函数是对象”和“
Object是函数”是有区别的,因为这两种说法都是正确的,但它们指的是不同的东西。 -
@TonyStark:这是一个对象:
{}。这不是一个函数。Object({}等对象的构造函数)是一个函数,你可以调用它(Object())。 -
如果有帮助,您的原始支票的正确格式应该是
Function.prototype instanceof Object和Object.prototype instanceof Function。
标签: javascript function object prototype