私は JavaScript の専門家ではないので、ここで何か間違ったことをしている可能性があります。
空の配列であるデフォルトのプロパティ bars を持つ単純な Foo Backbone モデルがあります。モデルの 2 つのインスタンスを作成します。最初のモデルに「a」と「b」を追加し、2 番目のモデルに「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"]
私は何を間違っていますか?