0

我对执行以下操作是否是一种好习惯有点困惑。

我有一个全局对象文字或命名空间,用于包含基本函数和变量。

在此我有一个 Page 属性,其中包含特定页面的所有变量和函数。我还在 Page 属性的一个属性中包含对元素 ID 的引用。这是因为有一个 ASP.NET 站点,我需要存储 .NET 生成的客户端 ID,以便我可以使用 jQuery 引用它们。

Base
    Base.Page
        Base.Page.Elements

我的问题是我发现自己在我的页面函数中为这些文字分配了“快捷方式”变量,例如:

Base.Page.DoThisStuff = function () {
    var p = Base.Page;
    var pe = Base.Page.Elements;

    //Function Stuff Here

    p = null;
    pe = null;
}

我的问题是:在我的母版页中创建一个“全局”变量是否是一个更好的主意,例如var _p = Base.Page;这种可怕和糟糕的做法,我应该像上面那样继续吗?

(我的命名空间没有上面这么短的名称——它们只是为了说明。

我没有标记 ASP.NET 或 jQuery,因为我认为它们与这个问题没有直接关系。)

4

2 回答 2

2

在我看来,这确实是一个编程风格的问题,每个答案都会有所不同。

我会将变量保持在尽可能小的范围内,因此,我更喜欢上面的解决方案,而不是全局变量快捷方式的想法。

于 2011-05-13T12:43:45.340 回答
0

一般来说,你会想要限制你的全局“足迹”,主要是为了避免另一块 js 重新定义你的一些全局变量。我会说标识符越简单,其他人最有可能使用它。

我在 extjs 中看到的并且我认为是一个很好的折衷方案是它们将在 Ext 命名空间下定义速记。例如获取一个组件,您将拥有 Ext.getCmp 方法,如果我没记错的话,它是 Ext.ComponentMgr.get 的快捷方式。

因此,如果您经常需要访问页面元素,您将保留 Base.Page,也许还有 Base.pe。

于 2011-05-13T12:46:37.377 回答