我目前正在調試一些代碼,但我無法讓自己圍繞這個概念在JavaScript中。關於此Javascript代碼構建
I have this code construct.
if(!COMPANY)
COMPANY = {};
COMPANY.Billing = (function(COMPANY){
//More code
})(COMPANY);
至於,我明白了,它創建了一個名爲「公司」的對象,然後添加一個名爲「結算」 ,但我不明白傳球同樣「公司」到函數的參數的想法新的屬性並在 同時重新命名爲「公司」。我的意思是 以上的代碼和下面的代碼之間的區別是什麼。
COMPANY.Billing = (function(COMPANY){
//More code
})();
我的JavaScript不是很深,所以我想明白上面的代碼構造手段。這可能是一些JavaScript設計模式,但我不知道它是什麼
嘗試閱讀[此問題](http://stackoverflow.com/questions/111102/how-do-javascript-closures-work?rq=1)關於如何關閉工作。它可能會幫助你。 –
你剛在公司內部定義了該功能。 – epascarello
區別在於你沒有向匿名函數傳遞任何東西的第二個代碼塊。它會改變內部的代碼行爲。 –