可能重复:
javascript中自执行函数的目的是什么?
什么在 JS 中编写这样的代码:
(function (window) { })(window);
或这个:
(function () { })();
可能重复:
javascript中自执行函数的目的是什么?
什么在 JS 中编写这样的代码:
(function (window) { })(window);
或这个:
(function () { })();
它创建了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
关于语法,它只是一个自执行函数,你声明它然后执行它。
它是一个自调用匿名函数或函数表达式。它会阻止您在全局范围内创建变量。它还立即调用该函数。
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
})();
它被称为闭包。它有助于控制变量的范围,因为 Javascript 将变量提升到其范围的顶部。它们也是立即执行或初始化的匿名函数。