立即调用匿名函数的两种方式(function(d){ }() );和 (function(x){ } )();.

Two ways of immediate call to anonymous function (function(d){ }() ); and (function(x){ } )();

本文关键字:function 方式 调用 函数 两种      更新时间:2023-09-26

可能的重复项:
在 JavaScript 中,"(function ( ( { } ( ( (" 和 "(function ( ( { } ( ( (" 在 JavaScript 中功能是否相等?

的问题有这些特殊字符,我找不到一个好的答案。(有谁知道如何用它们搜索?

我已经看到了两种立即调用匿名函数的模式 http://jsfiddle.net/ukqS8/1/

(function(d) {
    document.write(d*2);
})(3);

(function(x) {
    document.write(x*2);
}(3));

区别在于放置 (3( 的位置:右括号内或外。

我在这里找到了对第二种情况的一个很好的解释:

JavaScript 函数 vs. ( function(( { ... } (((;

我理解为function(x) {...}创建一个函数对象,(3( 成为它的参数,并且封闭 (( 告诉解释器里面是一个语句。

在第一种情况下,它似乎(function(d) {...})一个以某种方式也是一个函数的语句,然后将 (3( 应用于该语句/函数。

因此,它们似乎都以相同的方式执行。这里真的有区别吗?范围(我对此表示怀疑(?这两种选择是否更可取?

你的理解是不正确的。

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

但是,可能存在细微的区别。

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