モデルのインスタンスが2つあり、それらが状態を共有しているように見えます。逆のことが起こると思いました。例えば:
var Q = Backbone.Model.extend({
defaults: {
fooObj: {
bar: {}
}
},
initialize: function() {
_.bindAll(this, 'addFoo');
},
addFoo: function(f) {
//get fooObj
fo = this.get('fooObj');
fo.bar[1] = f;
//set it back
this.set('fooObj', fo);
},
getFoo: function (argument) {
return this.get('fooObj');
}
})
q1 = new Q();
q2 = new Q();
q1.addFoo({iam: 'foo'});
console.log(q2.getFoo().bar[1]); // {iam : "foo"}
{iam: "foo"}
インスタンスに追加しましたq1
が、それも伝播されているようq2
です。私はここでトリックを逃していますか?それは表示されget
、set
モデルデータにアクセスするための正しい安全な方法ですが、それでもこの動作が発生します(またはこれは予想されます)?