配列変数を持つBackboneViewクラスがあるため、説明できないシナリオ/バグが発生しましたが、変数値は再インスタンス化した後も存続します。バックボーンビューには次の設定があります。
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 = [];
},
しかし、これがバグなのか、何かを誤解したのかを知りたいのですが。