请考虑:
function Foo() {}
var x = new Foo();
现在x和Foo具有相同的原型,但只有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
起作用了呢?
x.constructor.prototype == Foo.prototype
- dandavisx
和Foo
的原型不相同:Foo
的原型是Function.prototype
。你已经得到了很好的答案,一些关于“JavaScript原型链”的研究应该会帮助你。 - traktor