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