繁体   English   中英

这个javascript代码是什么意思?

[英]What does this javascript code mean?

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

我不明白(function..)含义甚至代码。

你有什么是:

自我调用匿名函数

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

function() {
}()

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

所以在我们有了之后,我们可以通过追加()调用自己

(function() {
})();

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

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

alert(myval); // === 'self executed'
  • function(){} - 是一个函数表达式,它定义了一个函数
  • (function(){}) - 像这样包装它确保它被视为表达式
  • (function(){})() - Adding () 调用该函数

然后将返回值分配给变量。

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

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

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

将允许你在那里使用$ ,它等于jQuery

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

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

这会更容易掌握吗?

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

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

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

function(){}

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

如果你这样做了

myval = function(){<something>};

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

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

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

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

调用函数,并在myval放置结果(这次不是函数本身)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM