我遇到了一个我无法解释的场景/错误,因为我有一个带有数组变量的 Backbone View 类,但即使在我重新实例化它之后变量值仍然存在。主干视图具有以下设置:
var TestView = Backbone.View.extend({
a:"",
b:"",
items:[],
initialize:function(){
},
add:function(value){
this.items.push(value);
}
});
这是我实例化类的方式:
this.formView = new TestView();
this.formView.add('halo');
this.formView.a = 'abc';
this.formView = new TestView();
this.formView.add('test');
this.formView.b = 'bcd';
console.log("a - " + this.formView.a);
console.log("b - " + this.formView.b);
console.log("items - ");
console.log(this.formView.items);
结果:
a -
b - bcd
items - ["halo", "test"]
令人惊讶的是,数组变量 'items' 仍然存在,它同时显示了 ['halo','test']。但不适用于正常变量。
这是 JsFiddle链接。
它可以通过在初始化函数中清除数组来解决。
initialize:function(){
this.items = [];
},
但我想知道这是一个错误还是我误解了一些东西。