可能重复:
What is the purpose of a self executing function in javascript?
拜托,有人可以向我解释这在JS中意味着什么:
var obj = (function(){
// code
})()
由于
答案 0 :(得分:5)
它被称为立即实例化的函数。它运行该函数,返回的值分配给obj
。您可以使用它创建一个范围或类,在该范围或类中,您可以使用闭包来将某些变量保持在该范围内。有关该主题,请参阅John Resigs page。
所以,如果函数看起来像这样:
var obj = (function(n){
return 2+n;
})(3);
obj
的值为5.
答案 1 :(得分: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
请注意,由于这是一个函数 expression ,而不是函数声明,因此在结束大括号后应该有一个分号。