IIFE(立即调用函数表达式)
- 是一种特殊的JS函数写法,一旦被定义,就立即被调用;
- 函数不能直接加圆括号被调用;
- 函数必须转为“函数表达式”才能被调用;
(function () {
statements
})();
作用
- 为变量赋值:当给变量赋值需要一些较为复杂的计算时(如if语句),使用IIFE显得语法更紧凑;
- 将全局变量变为局部变量
var arr = [];
for(var i = 0; i <5; i++){
arr.push(function(){
alert(i);
})
}
arr[2](); // 5
var arr = [];
for(var i = 0; i <5; i++){
(function (i){
arr.push(function(){
alert(i);
});
})(i);
}
arr[2](); // 2