Ric*_*nop 3 javascript backbone.js
我不是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"));
Run Code Online (Sandbox Code Playgroud)
在控制台中我看到:
["a", "b", "c", "d"]
["a", "b", "c", "d"]
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
在javascript中,Arrays(和对象)作为引用传递.
在这里,您为每个模型分配了相同的数组引用.
要修复它,您每次都需要分配一个新数组.
Backbone.Model.extend({
initialize: function() {
this.set("bars", []); // Here we set a new array
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
192 次 |
| 最近记录: |