考虑:
function Foo() {}
var x = new Foo();
现在 x 和 Foo 具有相同的原型(prototype),但只有 Foo 响应 .prototype:
Object.getPrototype(x) === Foo.prototype // true
x.prototype === Foo.prototype // false
Foo.prototype // Foo {} (depending on which browser)
x.prototype // undefined
为什么 x.prototype
不起作用,而 Foo.prototype
却起作用?
最佳答案
prototype
是构造函数的一个属性,它确定由该构造函数创建的新对象的原型(prototype)是什么。只有在构造函数上具有这样的属性才有用。
只要构造函数上的原型(prototype)没有改变:
Object.getPrototypeOf( x ) === Foo.prototype
这与:
Object.getPrototypeOf( x ) === x.constructor.prototype
一般注意:
Object.getPrototypeOf( Foo ) != Foo.prototype
关于javascript - 为什么函数响应 .prototype 但常规对象不响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34709911/