2017-03-08 125 views
1

最近我碰到一段代碼,這是這樣的:javascript中的function(){}是什麼意思?

var noop = function(){}; 
    options.ondragover = options.ondragover || noop; 
    options.ondragleave = options.ondragleave || noop; 
    options.ondrop = options.ondrop || noop; 
    options.onfilesdone = options.onfilesdone || noop; 
+0

這只是一個佔位符函數,如果任何'option。*'函數不存在。 – Xufox

+3

noop表示「無操作」。這是一個空的函數 – Gab

+0

在這種情況下,只是默認函數來設置,如果我們沒有任何其他選項。 –

回答

-3

這是一個簡單的自我執行功能,其中任何聲明,您可以執行相同。

它限制了範圍並將其設置爲隱藏並隱藏了全局對象中的變量。

// Somewhere it is defined as global.. 
var x = 7; 
// Your piece of code 
var x = "roman" // Here, you override the value of x defined earlier. 
alert(x); // "roman"  
But when you use a closure which you have mentioned:  
var x = 7; 
// it doesn't affect/change the value of global x 
(function(){ var x = "roman";})(); 
alert(x); // 7 
+2

自動執行函數就像這樣'(function(){...})();'不像問題中描述的那樣! –

+0

我已經解釋了我們可以使用它的方式以及差異。我在上面描述的答案中有錯嗎? – jatingoel1349

+0

我不認爲這是你的答案中有任何事實錯誤。這只是它不是這個問題的答案。 –

0

代碼您發佈聲明名稱爲空操作,空功能的無操作功能

詳細論述了(無操作)作爲在某些條件適用時執行的替代方法。 例如代碼:

options.ondragover = options.ondragover || noop;

檢查是否存在options.ondragover,如果沒有分配空函數的變量。

相關問題