1

可能重复:
“(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) 应用于这个语句/函数。

因此,它们似乎都以相同的方式执行。这里真的有区别吗?范围(我怀疑)?任何一个选项都更可取吗?

4

2 回答 2

2

你的理解是不正确的。

这些都是函数表达式;括号的位置在这里没有区别。

但是,可能存在细微差别

于 2012-05-02T15:42:46.833 回答
1

它们执行完全相同。区别仅在于语法。

于 2012-05-02T15:42:29.793 回答