奇怪的JavaScript语法如下:(function(){// code})();?

Jef*_*eff 5 javascript function

以下JavaScript是什么意思?为什么函数嵌入在()中?

(function() {
    var b = 3;
    a += b;
}) ();
Run Code Online (Sandbox Code Playgroud)

Jus*_*ner 13

它的功能相当于做类似的事情:

var myFunc = function(){
    var b = 3;
    a += b;
};

myFunc();
Run Code Online (Sandbox Code Playgroud)

它周围有括号(和尾随),以便立即调用该函数.正如其他人所说,这个概念被称为匿名函数.

  • 这不仅仅是另一种方式.你的方式将创建一个变量`myFunc`,它可能会或可能不会与其他现有变量发生冲突.OP发布的代码不会创建此变量.当然它仍然是匿名的.但是该值已绑定到变量,而不是OPs代码中的变量. (3认同)
  • 我并不是说两者完全相同......只是功能性的.他们最终会产生相同的结果. (2认同)

n13*_*313 5

这是一个匿名函数,它在创建之后才会触发.