IIFE
IIFE: Immediately Invoked Function Expression,意为立即调用的函数表达式,也就是说,声明函数的同时立即调用这个函数。
IIFE的目的是为了隔离作用域,防止污染全局命名空间。
IIFE形式的函数调用:
(function(params){
})()
IIFE的函数名和参数
var a = 2;
(function IIFE(global){
var a = 3;
console.log(a); // 3
console.log(global.a); // 2
})(window);
console.log(a); // 2
IIFE构造单例模式
unction myModule(){
var some = "xxx";
var other = [1,2,3];
function someFun(){
console.log(some );
}
function otherFun(){
console.log(other );
}
return {
someFun:someFun
otherFun:otherFun
}
}
var foo = myModule();
foo.someFun();
foo.otherFun();
var foo1 = myModule();
foo1.someFun();