在爲某些同事編寫javascript課程時,我意外地發現了一個用於自調用函數的替代語法。有沒有人知道它,是否有一些細節呢?我無法找到有關它的文檔。自調用函數的替代語法?
CODE: 經典語法
(function(){
console.log("I'm self-invoked!");
})();
替代語法
(function(){
console.log("Me too!");
}());
謝謝你的提示!
在爲某些同事編寫javascript課程時,我意外地發現了一個用於自調用函數的替代語法。有沒有人知道它,是否有一些細節呢?我無法找到有關它的文檔。自調用函數的替代語法?
CODE: 經典語法
(function(){
console.log("I'm self-invoked!");
})();
替代語法
(function(){
console.log("Me too!");
}());
謝謝你的提示!
這兩者在含義上是相同的。
在兩者中,(
在開始符號開始of an expression。這表示我們打算調用的a function expression的開始。最後我們調用它。所不同的是微妙的,不應該的問題,在所有的,讓我們來看看它:
(function(){
console.log("I'm self-invoked!");
})();
這裏,(
就是要告訴它是一個表達式的開始編譯,編譯器評估(在這種情況下,函數表達式)表達式然後調用它(表達式之外)。
(function(){
console.log("Me too!");
}());
這裏 - 的invokation圖案(()
)是非常表達的部分。
謝謝,現在很清楚。 – jonBreizh
@jonBreizh不客氣,我已經創建了這個答案社區wiki,以便其他用戶可以編輯它並添加更多信息(因爲這個問題也很基本)。如果您想添加它 - 歡迎您。 –
它的工作方式完全相同;括號只是爲了防止它被解析爲一個語句(一個一元操作符也可以)。你不明白什麼? – SLaks