立即执行函数表达式
一个普遍的进阶用法
var a = 2;
(function IIFE(global){
var a = 3;
console.log(a);
console.log(global.a);
})(window)
console.log(a);
避免undefined被错误覆盖
略
传参时传入一个函数进去
var a = 2;
(function IIFE(b){
var a = 3;
b();//5
console.log(a);//3
})(function def(){var a=3;a=a+2;console.log(a)})
console.log(a);//2
说是在UMD项目中广泛使用。