这个javascript代码是什么意思?

时间:2011-02-24 07:29:11

标签: javascript

var myval = (function(){})();

我不理解(function..)含义甚至其他代码。

6 个答案:

答案 0 :(得分:8)

你得到的是:

自行调用匿名函数

您首先通过围绕函数本身进行paranthesis来创建函数表达式。 只是写

function() {
}()

在这种情况下不起作用,因为这将定义一个函数声明。

所以在我们有了这个之后,我们可以通过附加()

调用本身
(function() {
})();

要验证这一点,请尝试以下方法:

var myval = (function(){return 'self executed!'})();

alert(myval); // === 'self executed'

答案 1 :(得分:8)

  • function(){} - 是一个函数表达式,它定义了一个函数
  • (function(){}) - 像这样包装它可以确保它被视为表达式
  • (function(){})() - 添加() 调用函数

然后将返回值赋给变量。

这通常用于允许使用变量而不会污染全局范围。

答案 2 :(得分:2)

这会创建一个匿名函数并立即调用它。例如

(function ($) {
  // Original JavaScript code.
})(jQuery);

允许您在其中使用$,它等于jQuery

答案 3 :(得分:1)

这个function(){}定义了没有正文的匿名函数(closure)。通过将其包装在大括号中并在末尾添加空参数列表(()),您正在运行此闭包。这基本上相当于:

var f = function() {};
f();

这会更容易掌握吗?

(function(x, y, z){})(1, 2, 3)

答案 4 :(得分:0)

答案 5 :(得分:0)

让我们一块一块地分析它:

这定义了一个匿名函数(即没有名字的函数)

function(){}

当然,在{}括号之间添加一些指令会更有用。

现在,如果你做了

myval = function(){<something>};

您将函数分配给myval(函数,而不是其返回值!)

那么你可以调用myval(),它就像调用函数本身一样。

在此,您可以通过将()放在最后来调用该函数。因此:

var myval = (function(){})();

调用函数,并在myval

中放置结果(这次不是函数本身)