面试题之数组var fun = function(){for(var i = 0 ,arr = []; i<3; i++){arr[i] = function(){ console.log(i) }

	var fun = function(){
		for(var i = 0 ,arr = []; i<3; i++){
			arr[i] = function(){ console.log(i) }
		}
		return arr
	}
	var funs = fun();
	funs[0](); //3
	funs[1](); //3
	funs[2](); //3

解析:
函数 fun 仅调用了1次,只创建了一个作用域,通过 for 循环分别创建了3个子函数保存在数组arr中,此时子函数并未调用,当for循环结束时,i = 3。在这里插入图片描述