(function(){})();是什么意思?

时间:2012-07-03 20:55:43

标签: javascript function

  

可能重复:
  What is the purpose of a self executing function in javascript?

JS中的meens编写了这样的代码:

(function (window) { })(window);

或者这个:

(function () { })();

3 个答案:

答案 0 :(得分:6)

这是一个自调用匿名函数或函数表达式。它可以防止您在全局范围内创建变量。它也立即调用该功能。

function someFunc() {
    // creates a global variable
}

var someFunc = function () {
    // creates a global variable
}

(function(){
    // creates an anonymous function and 
    // runs it without assigning it to a global variable
})();

答案 1 :(得分:6)

它会创建一个closure,一个隐藏global object

变量的私有作用域
// Somewhere...
var x = 2;

...
...
// Your code
var x = "foo" // you override the x defined before.

alert(x); // "foo"

但是当你使用一个闭包时:

var x = 2;
// Doesn't change the global x
(function (){ var x = "foo";})();

alert(x); // 2

关于语法,它只是一个自执行的函数,你声明它然后执行它。

答案 2 :(得分:3)

它被称为closure。它有助于控制变量的范围,因为Javascript将变量提升到其范围的顶部。它们也是立即执行或初始化的匿名函数。