我不明白以下行为:
var Foo = function () {};
var Bar = function () {};
Foo.prototype = Bar;
var foo = new Foo();
console.log(foo.prototype === Bar.prototype); // true, but why?
我在规范中找不到关于prototype
使用构造函数创建的对象的属性默认值的任何内容。(我确实找到了规范的这一部分,其中提到,对于函数,prototype
属性默认为new Object()
,但没有提到使用构造函数创建的对象。)
所以,我的问题实际上是双重的:
prototype
使用构造函数创建的对象的属性的默认值是多少?(似乎它是构造函数prototype
的prototype
属性;例如Foo.prototype.prototype
)
它在规范中的哪里解释了这种行为?