3
請解釋爲什麼函數foo的新實例obj2在項目數組中還有元素?爲什麼當我調用新的foo()時它不會被忽略?當創建對象的新實例時,爲什麼函數的屬性未被忽略爲缺省值?
var foo = function() {}
foo.prototype = {
items : [],
addItem : function()
{
this.items.push("item");
}
}
var obj = new foo();
obj.addItem();
console.log(obj.items.length); //1 as expected
var obj2 = new foo();
console.log(obj2.items.length); // 1, why not 0?????
您已將它添加到原型,這意味着所有實例將共享它。 – JohanP
你想重寫'foo'的正常函數方法嗎?如果沒有,我不會覆蓋整個'原型'。 – PHPglue