-1

可能重复:
javascript中自执行函数的目的是什么?

拜托,有人可以向我解释一下这在 JS 中是什么意思:

var obj = (function(){ 
   // code
})()

谢谢

4

2 回答 2

5

它被称为立即实例化的函数。它运行该函数,并将返回的值分配给obj. 您可以使用它创建一个范围或类,您可以在其中使用闭包将某些变量保留在该范围内。请参阅有关该主题的 John Resigs页面

因此,如果函数如下所示:

var obj = (function(n){
  return 2+n;
})(3);

的值为obj5。

于 2012-06-29T08:07:09.843 回答
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

请注意,由于这是一个函数表达式,而不是函数声明,所以它应该在右花括号后有一个分号。

于 2012-06-29T08:07:22.340 回答