Backbone或javascript对象扩展bug

时间:2012-01-19 17:51:09

标签: javascript backbone.js

在评论中输出。这是javascript bug,backbone还是其他?

var t = Backbone.View.extend({
    ben: {},
    banana: function(s){
        this.ben[s] = s;
    },
    show: function(){
        console.info(this.ben)
    }
});
var c1 = new t();
var c2 = new t();
c1.banana('1');
c1.show(); //Object { 1="1"}
c2.banana('2');
c1.show(); //Object { 1="1", 2="2"}

2 个答案:

答案 0 :(得分:3)

代码的行为符合预期(即不是错误)。 ben已添加var t = Backbone.View.extend({ initialize: function (options) { this.ben = {}; } banana: function(s){ this.ben[s] = s; }, show: function(){ console.info(this.ben) } });

请考虑改为:

{{1}}

答案 1 :(得分:1)

这不是一个错误,ben是一个“类属性”(不是因为javascript中没有类,但它就像一个类)。

每次执行new t()时,您都会引用相同的ben