在backbone.js中使用全局变量

时间:2012-02-23 11:13:03

标签: javascript backbone.js global-variables

所以,第一个问题我找不到答案。可能有足够的理由问我自己的第一个问题。如果答案可以在backbone.js的范围之外找到,那就道歉。

在backbone.js应用程序中,我需要访问不同函数中的几个变量,所以我必须使用一些全局变量设置。

我想知道我目前的解决方案是否可接受/良好做法。我的IDE(IDEA)似乎认为它不是:

var MyModel = Backbone.Model.extend({

initialize:function(){
  var myGlobalVar, myOtherGlobalVar;//marked as unused local variable
},

myFunction:function() {          
      myGlobalVar = value;//marked as implicitly declared
      model.set({"mrJson": {"email": myGlobalVar}});
      model.save();
    });
  }
},

myOtherFunction:function() {          
      myOtherGlobalVar = otherValue;//marked as implicitly declared
      model.set({"mrJson": {"email": myGlobalVar, "other": myOtherGlobalVar}});
      model.save();
    });
  }
}
}

我尝试声明隐式声明的全局变量,但这导致它们无法从其他函数访问。

是否有正确的方法在backbone.js中处理这些全局变量?

1 个答案:

答案 0 :(得分:15)

您当前声明变量的方式是,它们位于函数 initialize 范围内,而不是对象 MyModel 范围。要将变量定义为模型变量(可由所有对象函数访问),请执行以下操作:

var MyModel = Backbone.Model.extend({

myGlobalVar: null,
myOtherGlobalVar: null,

initialize:function(){
  console.log(this.myGlobalVar)
},
...
相关问题