function fun() {
for ( var i=0,arr=[] ; i<3 ;i++){ //循环体执行了三次
arr[i] =function(){ //函数不调用不执行,所有等这个循环体结束 i 已经变成了3
console.log(i) ;
}
}return arr ;
}
var funs=fun() ;
//所以后面再调用也没得选择,只有一个 i = 3 ;
funs[0]() ;//3
funs[1]() ; //3
funs[2]() ; //3
//上面的循环每执行一次都会创建一个function
//arr[0]=function(){console.log(i)} ;
//arr[1]=function(){console.log(i)} ;
//arr[2]=function(){console.log(i)} ;
//ps:如果想实现 0 1 2 就把var 换成let
function fun() {
var arr=[] ;
for ( let i=0 ; i<3 ;i++){
//function( i ){
arr[i] =function(){
console.log(i) ;
}
//}( i )
}return arr ;
}
var funs=fun() ;
funs[0]() ;//0
funs[1]() ; //1
funs[2]() ; //2
funs[0]() ;//3 funs[1]() ; //3 funs[2]() ; //3
最新推荐文章于 2020-12-30 18:18:10 发布