[英]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.