2017-03-08 89 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,如果没有分配空函数的变量。

相关问题