我对 javascript 的 Object.prototype 和 Anything.prototype 感到困惑。
在 Chrome 控制台中,我有以下代码:
我的问题:
- 任何函数的默认原型(prototype)都是 Object 的实例。是这样吗?
- 如果 1 为真。因此,Anything.prototype 和 Object.prototype 都是 Object 的实例。 Object.prototype 是一个实例,其
__proto__
=== 空。因此,Object.prototype是原型(prototype)链顶部的一个特殊实例。我可以这样理解吗?
最佳答案
The default prototype for any function is an instance of Object.
是的,任何函数
的.prototype
属性都包含一个继承自Object.prototype
的对象:
Object.getPrototypeOf(Anything.prototype) === Object.prototype // true
So, both
Anything.prototype
andObject.prototype
are an instance of Object.
我不会说 Object.prototype
是 Object
的实例,因为它定义了它是什么 - 并且它不继承来自 Object.prototype
,正如您自己所说:
Object.getPrototypeOf(Object.prototype) === null // true
Object.prototype instanceof Object // false, because
Object.prototype.isPrototypeOf(Object.prototype) // false (obviously)
Therefore,
Object.prototype
is a special instance at the top of prototype chain.
是的,尽管我会说每个原型(prototype)链的顶部都是null
。
关于javascript Object.prototype VS Anything.prototype,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42870134/