可能重复:
“(function ( ) { } ) ( )” 和 “(function ( ) { } ( ) )” 在 JavaScript 中的功能是否相同?
我的问题有这些特殊字符,我找不到一个好的答案。(有人知道如何用他们搜索吗?)
我已经看到了两种立即调用匿名函数的模式http://jsfiddle.net/ukqS8/1/
(function(d) {
document.write(d*2);
})(3);
和
(function(x) {
document.write(x*2);
}(3));
不同之处在于 (3) 的放置位置:在右括号的内部或外部。
我在这里找到了第二种情况的一个很好的解释:
javascript 函数与 (function() { ... } ());
我理解为function(x) {...}
创建一个函数对象, (3) 成为它的参数,并且封闭的 () 告诉解释器里面的内容是一个语句。
在第一种情况下,它似乎做(function(d) {...})
了一个以某种方式也是一个函数的语句,然后将 (3) 应用于这个语句/函数。
因此,它们似乎都以相同的方式执行。这里真的有区别吗?范围(我怀疑)?任何一个选项都更可取吗?