经常听到闭包,闭包例子如下:
function getFun(demo ){
var result = '--**--';
return function(){
return [result ,demo];
};
}
闭包主要用来包裹一块独立的功能,避免被外面的变量污染,但是会返回一些接口来使用内部的变量和逻辑。
for(var i=0;i<4;i++){
setTimeout(function(){
console.log(i);
});
}
上面的代码输出的数据是否跟期望的不一样。需要改造成下面这样:
for(var i=0;i<4;i++){
setTimeout((function(ii){
return function(){console.log(ii);};
})(i));
}