2013-08-26 76 views
1

在爲某些同事編寫javascript課程時,我意外地發現了一個用於自調用函數的替代語法。有沒有人知道它,是否有一些細節呢?我無法找到有關它的文檔。自調用函數的替代語法?

CODE: 經典語法

(function(){ 
     console.log("I'm self-invoked!"); 
    })(); 

替代語法

(function(){ 
     console.log("Me too!"); 
    }()); 

謝謝你的提示!

+3

它的工作方式完全相同;括號只是爲了防止它被解析爲一個語句(一個一元操作符也可以)。你不明白什麼? – SLaks

回答

2

這兩者在含義上是相同的。

在兩者中,(在開始符號開始of an expression。這表示我們打算調用的a function expression的開始。最後我們調用它。所不同的是微妙的,不應該的問題,在所有的,讓我們來看看它:

(function(){ 
    console.log("I'm self-invoked!"); 
})(); 

這裏,(就是要告訴它是一個表達式的開始編譯,編譯器評估(在這種情況下,函數表達式)表達式然後調用它(表達式之外)。

(function(){ 
    console.log("Me too!"); 
}()); 

這裏 - 的invokation圖案(())是非常表達的部分

+0

謝謝,現在很清楚。 – jonBreizh

+0

@jonBreizh不客氣,我已經創建了這個答案社區wiki,以便其他用戶可以編輯它並添加更多信息(因爲這個問題也很基本)。如果您想添加它 - 歡迎您。 –