次のようなバックボーン ビューを拡張しています。
var baseView = Backbone.View.extend({
fruits : [],
listFruits : function() {
console.log(this.fruits);
}
});
var firstView = baseView.extend({
initialize : function() {
this.fruits.push("apple");
}
});
var secondView = baseView.extend({
initialize : function() {
this.fruits.push("pear");
}
});
var firstViewInstance = new firstView(); // ["apple", "pear"]
var secondViewInstance = new secondView(); // ["apple", "pear"]
firstViewInstance.listFruits();
secondViewInstance.listFruits();
私の考えでは、firstViewInstance
とsecondViewInstance
は完全に分離されているはずですが、明らかに関連しています。共通のベースから継承しているが、データを共有していない2 つの個別のビュー オブジェクトを実現するにはどうすればよいですか?
編集: 以下の回答に基づいて、http://jsfiddle.net/qZ7SU/に更新されたフィドルがあり、この問題を解決しているようです。何が起こっているのかはまだ完全にはわかりませんが、明示的に にアタッチfruits[]
するthis
と、プロトタイプにアタッチするのではなく、インスタンス変数として作成されると思います。