立即执行函数表达式
var a = 2;
(function foo(){
var a = 3;
console.log(a); //3
})()
console.log(a); //2
由于函数被包含在一对()括号内部,因此成为一个表达式,通过在末尾加上另外一个()可以立即执行这个函数,比如(function foo(){…}())。第一个()将函数表达式,第二个()执行了这个函数。
如果我们要传参的话
var a = 2;
(function foo(global){
var a = 3;
console.log(a); //3
console.log(global.a); //2
})(window)
console.log(a); //2