我有两个模型实例,发现它们似乎在它们之间共享状态。我原以为会发生相反的情况。例如:
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"}
到 instance q1
,但它似乎也被传播到q2
了。我在这里错过了一个技巧吗?它似乎是访问模型数据get
的set
正确安全方式,但它会导致这种行为(或者这是预期的)?