簡體   English   中英

JavaScript | 正確的代碼格式

[英]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 ,您可以將windowonload屬性設置為init函數。 稍后,當頁面完成加載時,將有人要求window執行其onload屬性,然后window將執行類似this.onload()

  • 使用window.onload = init() ,您將在此處執行init並將windowonload屬性設置為init函數執行的返回。 由於每個Javascript函數都返回某些內容(默認情況下為undefined ),因此您將設置window.onload = undefined 這不是您想要的。

這是一種口味風格的問題-有點像寫一篇論文。 最終,重要的是任何人(或您,從現在起六個月)都可以閱讀您的代碼並了解正在發生的事情。 僅關注功能,您自然會開始就邏輯上的位置做出決策。

(口才的Javascript)[ http://eloquentjavascript.net//]也是一本關於該主題的好書。

暫無
暫無

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

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