所以,第一个问题我找不到答案。可能有足够的理由问我自己的第一个问题。如果答案可以在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中处理这些全局变量?
答案 0 :(得分:15)
您当前声明变量的方式是,它们位于函数 initialize 范围内,而不是对象 MyModel 范围。要将变量定义为模型变量(可由所有对象函数访问),请执行以下操作:
var MyModel = Backbone.Model.extend({
myGlobalVar: null,
myOtherGlobalVar: null,
initialize:function(){
console.log(this.myGlobalVar)
},
...