Javascript 主干全局变量
在这种情况下,如何在主干中使用全局变量?问题是我有120多个视图,比如Javascript 主干全局变量,javascript,variables,backbone.js,global,Javascript,Variables,Backbone.js,Global,在这种情况下,如何在主干中使用全局变量?问题是我有120多个视图,比如HomeView,要在所有视图中定义相同的polyglotvar太难了。还有别的办法吗 var TranslatetView = Backbone.View.extend({ window.polyglot = new Polyglot({phrases:{'hello':'hello'}}); var polyglot = window.polyglot.phrases; }); var HomeV
HomeView
,要在所有视图中定义相同的polyglot
var太难了。还有别的办法吗
var TranslatetView = Backbone.View.extend({
window.polyglot = new Polyglot({phrases:{'hello':'hello'}});
var polyglot = window.polyglot.phrases;
});
var HomeView = Backbone.View.extend({
console.log(polyglot.hello);
});
我想说的是,全局变量是不好的。试着把自己限制在尽可能少的范围内。全局命名空间污染非常危险,将来可能会导致意外错误 我经常使用的一种技术是通过创建自己的名称空间来解决污染全局名称空间的问题 例如,您可以执行以下操作
window.myNamespace = window.myNameSpace || {};
window.myNamespace.TranslateView = ...;
window.myNamespace.HomeView = ...;
如果HomeView和TranslateView属于不同的模块,也可以为它们命名名称空间
window.myNamespace.TransteModule = {};
window.myNamespace.TransteModule.TranslateView = ....;
这样,您只需为名称空间创建一个全局变量。您还可以通过其包含模块轻松地识别视图