避免全局命名空间:概念性

时间:2014-01-31 10:05:31

标签: javascript performance global-variables

这是避免全局命名空间的另一个问题。

对于我在私人时间工作的Web应用程序,我需要很多不同模块之间共享的对象实例。它是一个单页面应用程序,几乎所有视图基本上都相互连接(MVC透视图)。

我将我的应用程序命名如下:

window.app = {
    views : {}, 
    models: {}, 
    collections: {}, 
    functions: {}
};

集合的插图: 条形图信息可以表示为地图上的标记,或列表中的项目,或者显示在配置文件上的信息等... 所以我要做的是创建“bars_Collection”的实例,并以这种方式将其添加到app对象:

app.collections.bars_Collection = New Bar_Collection(); 

获取数据一次使整个应用程序中的集合数据可用。

视图的另一个例子:
我有一个视图对象,其中包含已更新的标签(关键字)列表,根据它正在被提供的集合(跨类别 - >可以是酒吧,餐馆等...)。所以我会为我添加到app对象的标签提供单一视图,如下所示:

app.views.tags_View = new Tags_View(); 

虽然我并不害怕名称冲突,但我确实知道我的app对象位于Global名称空间。在向全局app对象添加更多嵌套对象时,我担心应用程序的性能: Why are global variables considered bad practice?

但是,让这些实例(app.views,app.models等)随时可以实现,这非常方便。

  

我的问题是:你如何评估这种情况,如果你认为这很糟糕   练习,你能给我一个关于更好的方法的实用指针吗?

0 个答案:

没有答案