[英]JavaScript | Proper way to format code
我是JavaScript新手,有個問題要問。 創建新程序時,最好在全局變量/對象中創建我的所有函數,或者單獨創建它們。
例如:
var register = {
members: [],
Member: function(){
},
reset: function(){
},
printMembers: function(){
},
process: function(){
}
};
function init(){
register.process();
};
window.onload = init();
或者像這樣:
var members = [];
function Member(){
};
function reset(){
};
function printMembers(){
};
function process(){
};
function init(){
process();
};
window.onload = init();
這可能是一個非常愚蠢的問題。
創建新程序時,最好在全局變量/對象中創建我的所有函數,或者單獨創建它們。
這是基於意見的,但是我將為您提供在全局對象內創建所有屬性的充分理由:您不會污染名稱空間。 這意味着,您將不會創建很多全局對象,它們將是全局對象的屬性(瀏覽器中的window
)。
如果您使用其他人的庫,並且如果您和他倆都將創建全局對象,則HTML稍后包含的腳本將覆蓋與其他腳本中聲明的名稱相同的屬性。
最后,我建議您編寫如下代碼:
var app = {};
app.members = [];
app.Member = function(){};
app.reset = function(){};
app.printMembers = function(){};
app.process = function(){};
function init() {
app.process();
};
window.onload = init;
另外,請注意,您應該執行window.onload = init
,而不是window.onload = init()
。
區別:
使用window.onload = init
,您可以將window
的onload
屬性設置為init
函數。 稍后,當頁面完成加載時,將有人要求window
執行其onload
屬性,然后window
將執行類似this.onload()
。
使用window.onload = init()
,您將在此處執行init
並將window
的onload
屬性設置為init
函數執行的返回。 由於每個Javascript函數都返回某些內容(默認情況下為undefined
),因此您將設置window.onload = undefined
。 這不是您想要的。
這是一種口味風格的問題-有點像寫一篇論文。 最終,重要的是任何人(或您,從現在起六個月)都可以閱讀您的代碼並了解正在發生的事情。 僅關注功能,您自然會開始就邏輯上的位置做出決策。
(口才的Javascript)[ http://eloquentjavascript.net//]也是一本關於該主題的好書。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.