2012-06-03 78 views
0

例如,在test.js這是允許的(和極其無意義):爲什麼JavaScript中不允許頂級匿名函數?

1 + 2; 
(function() {}); 

當與節點執行:

$ node test.js 
$ 

形式function() {}(沒有括號)被允許在其他情況下,例如作爲另一個功能的參數。

爲什麼在JavaScript文件的頂層不允許以下內容?

function() {}; 
+2

爲什麼你需要這個?沒有任何句柄的無名稱函數只是一個noop! –

+0

可能重複[爲什麼需要我在用Javascript調用它之前用括號括住匿名函數?](http://stackoverflow.com/questions/8583145/why-need-i-wrap-anonymous-function-in-parenthesis-before - 在javascrip中調用) – 2012-06-03 13:57:08

+0

@EmilVikström我當然不需要它。我只是好奇它爲什麼這樣工作。 –

回答

4

function開頭的語句是一個函數聲明
函數語句必須命名。 (因爲他們在該範圍內創建了一個聲明)

+0

我一直在尋找合適的詞語來說 – qwertymk

+1

確切的說法是* function declaration * afaik。 –

+0

@FelixKling:不是根據Firefox:'SyntaxError:函數語句需要一個名稱' – SLaks

相關問題