/*
* 增加一层环境
*/
function main(i){
return i
}
var demo = {}
for(var i=0;i<5;++i){
~function(){
var val = main(i);
demo[i] = function(){
return val
}
}()
}
console.log(demo[4]())
/*
* while 循环也一样
*/
function main(i){
return i
}
var demo = {};
var i = 5;
while(i--){
~function(){
var val = main(i);
demo[i] = function(){
return val
}
}()
}
console.log(demo[1]())
/*
* 经典的闭包
*/
var i = 0, lis = document.getElementsByTagName('li'), val;
while(val = lis[i++]){
~function(){
var temp = i;
val.onclick = function(){
console.log(temp)
}
}();
}