我不是JavaScript專家,所以我可能在這裏做錯了什麼。骨幹模型是單身人士嗎?
我有一個簡單的Foo Backbone模型,其默認屬性欄是一個空數組。我創建了兩個模型實例。我在第一個模型中添加了「a」和「b」,在第二個模型中添加了「c」和「d」。當我用console.log()打印出條的內容時,看起來兩個實例是同一個對象。
的jsfiddle:http://jsfiddle.net/P7qsz/
代碼:
var Foo = Backbone.Model.extend({
defaults: {
bars: []
}
});
var foo = new Foo();
foo.get("bars").push("a");
foo.get("bars").push("b");
console.log(foo.get("bars"));
var foo2 = new Foo();
foo2.get("bars").push("c");
foo2.get("bars").push("d");
console.log(foo2.get("bars"));
在控制檯中我看到:
["a", "b", "c", "d"]
["a", "b", "c", "d"]
我在做什麼錯?
_Arrays和OBJETS永遠都不應該在默認對象中聲明,它應該是在constructor._實際上,[骨幹文檔(http://backbonejs.org/#Model-defaults)建議使用函數在默認情況下返回一個新的數組/對象。 [小提琴](http://jsfiddle.net/P7qsz/1/) – steveax
你說得對。但是,不向默認添加obj的權限適用於所有JS,而不僅適用於骨幹。 – Kaizo