簡體   English   中英

將全局快捷方式變量分配給全局命名空間(對象文字)是不好的做法嗎?

[英]Is it bad practice to assign a global shortcut variable to a global namespace (object literal)?

關於做以下事情是否良好做法,我有點窘迫。

我有一個全局對象文字或命名空間,用於包含基本函數和變量。

在這里我有一個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,因為我認為它們與這個問題沒有直接關系。)

這在我看來是編程風格的問題,每個答案都會有所不同。

我會將變量保持在盡可能小的范圍內,因此,我更傾向於上面的解決方案,而不是全局變量的快捷方式。

一般來說,你會想要限制你的全局“足跡”,主要是為了避免另一塊js重新定義你的一些全局變量。 我會說標識符越簡單,最有可能是別人可能會使用它。

我在extjs中看到的並且我認為是一個很好的折衷方案是他們將在Ext命名空間下定義shorthands。 例如,獲取一個你將擁有Ext.getCmp方法的組件,如果我沒記錯的話,它是Ext.ComponentMgr.get的快捷方式。

因此,如果您經常需要訪問頁面元素,那么您將保留Base.Page,也許還有Base.pe。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM