定义:此类函数没有声明,在一次执行过后即释放。适合做初始化工作。
1.(function (){}())
2.(function (){})()
3.只有表达式才能被执行符号执行。
4.使用立即执行函数解决闭包问题
//产生闭包
function test(){
var arr = [];
for(var i = 0; i < 10; i++){
arr[i] = function(){
console.log(i);
}
}
return arr;
}
var myArr = test();
for(var j = 0; j < myArr.length; j++){
myArr[j]();//输出10个10
}
//解决闭包
function test(){
var arr = [];
for(var i = 0; i < 10; i++){
(function(j){
//j = 0;
arr[j] = function(){
console.log(j);
}
}(i));
}
return arr;
}
var myArr = test();
for(var j = 0; j < myArr.length; j++){
myArr[j]();//输出10个10
}