Javascript 向主干中的原型对象添加值不起作用

Javascript 向主干中的原型对象添加值不起作用,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,在主干中,我有一个名为“errors\u dict”的自定义原型对象视图。我想记录下所犯的错误,所以我希望错误能够持续下去。然而,当“下一个阶段”方法运行时,我得到了一个错误,错误没有定义。为什么会这样?当我在nextage方法中本地定义dict错误时,它工作得很好,但是当然,下一次该方法运行时,同一个字典不可用 作为旁注,如果字典不存在(值为1),我如何让它创建一个新键,如果它存在,我如何让它增加1?我知道如何在Python中实现这一点,但我对JS是新手 window.View = Backb

在主干中,我有一个名为“errors\u dict”的自定义原型对象视图。我想记录下所犯的错误,所以我希望错误能够持续下去。然而,当“下一个阶段”方法运行时,我得到了一个错误,错误没有定义。为什么会这样?当我在nextage方法中本地定义dict错误时,它工作得很好,但是当然,下一次该方法运行时,同一个字典不可用

作为旁注,如果字典不存在(值为1),我如何让它创建一个新键,如果它存在,我如何让它增加1?我知道如何在Python中实现这一点,但我对JS是新手

window.View = Backbone.View.extend({

    mistakes_dict: {},

    initialize: function () {
        this.render();
    },

    events: {
        "click .nextstage"   : "nextstage"
    },

    nextstage: function () {
      var mistakes_string = $("span.highlighted").text();
      for(var i = 0, len = mistakes_string.length; i < len; i++){
        mistakes_dict[mistakes_string[i]] = 1;
      };

    },

    render: function () {
      this.$el.html(this.template(this.model.toJSON()));
        return this;
    }
});
window.View=Backbone.View.extend({
错误:{},
初始化:函数(){
这个。render();
},
活动:{
单击.nextstage:“nextstage”
},
下一阶段:函数(){
var errors_string=$(“span.highlighted”).text();
for(变量i=0,len=errors\u string.length;i
错误\u dict直接在视图上定义

因此,您需要使用
这个
上下文来访问它

mistakes_dict[mistakes_string[i]] = 1;
应该是

this.mistakes_dict[mistakes_string[i]] = 1;

您在
window.View=Backbone.View.extend({…})
中定义的内容附加到原型,因此您必须通过
访问它们:

for(var i = 0, len = mistakes_string.length; i < len; i++){
    this.mistakes_dict[mistakes_string[i]] = 1;
}

谢谢,这很有道理。
window.View = Backbone.View.extend({
    initialize: function () {
        this.mistakes_dict = { };
        this.render();
    },
    //...