可能重复:
javascript中自执行函数的目的是什么?
拜托,有人可以向我解释一下这在 JS 中是什么意思:
var obj = (function(){
// code
})()
谢谢
它被称为立即实例化的函数。它运行该函数,并将返回的值分配给obj
. 您可以使用它创建一个范围或类,您可以在其中使用闭包将某些变量保留在该范围内。请参阅有关该主题的 John Resigs页面。
因此,如果函数如下所示:
var obj = (function(n){
return 2+n;
})(3);
的值为obj
5。
它是一个立即执行的匿名函数。它的返回值被赋值给obj
. 例如:
var obj = (function () {
return 10;
}()); //Notice that calling parentheses can go inside or outside the others
console.log(obj); //10
它们通常用于引入新的范围,因此您不会弄乱代码正在执行的范围:
var obj = (function () {
var something = 10; //Not available outside this anonymous function
return something;
}());
console.log(obj); //10
请注意,由于这是一个函数表达式,而不是函数声明,所以它应该在右花括号后有一个分号。