我不明白以下行为:
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)
它在规范中的哪里解释了这种行为?