2

次のようなバックボーン ビューを拡張しています。

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();

私の考えでは、firstViewInstancesecondViewInstanceは完全に分離されているはずですが、明らかに関連しています。共通のベースから継承しているが、データを共有していない2 つの個別のビュー オブジェクトを実現するにはどうすればよいですか?

編集: 以下の回答に基づいて、http://jsfiddle.net/qZ7SU/に更新されたフィドルがあり、この問題を解決しているようです。何が起こっているのかはまだ完全にはわかりませんが、明示的に にアタッチfruits[]するthisと、プロトタイプにアタッチするのではなく、インスタンス変数として作成されると思います。

4

2 に答える 2