//返回函数数组,以为内部函数保存着func2函数的活动对象,所以引用的都是同一个变量,因此每个i的值都为10,比如执行func2()[0]()结果为10function func2() { var result = new Array(); for (var i = 0; i < 10; i++) { result[i] = function() { return i; }; } return result;}
//返回函数数组,因为num是复制i值,不是引用,所以每个num取值不一比,如执行func4()[0]()结果为0
function func4() { var result = new Array();for (var i = 0; i < 10; i++) {
result[i] = function(num) { return function() { return num; } }(i); } return result;}//返回[0,1,2,3,4,5,6,7,8,9]function func1() { var result = new Array(); for (var i = 0; i < 10; i++) { result[i] = i; } return result;}//返回[0,1,2,3,4,5,6,7,8,9]function func3() { var result = new Array(); for (var i = 0; i < 10; i++) { result[i] = function() { return i; }(); } return result;}//返回[0,1,2,3,4,5,6,7,8,9]function func5() { var result = new Array(); for (var i = 0; i < 10; i++) { result[i] = function(num) { return num; }(i); } return result;}