主干全局变量

Backbone Global Variable

本文关键字:全局变量      更新时间:2023-09-26

在这种情况下,如何在 Backbone 中使用全局变量?问题是我有超过 120 个像 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 = ....;

这样,您只为命名空间创建 1 个全局变量。您还可以通过包含模块轻松识别视图。