哪位高手能帮小弟我看看这个函数阿,为什么返回的值那么的奇怪阿
谁能帮我看看这个函数阿,为什么返回的值那么的奇怪阿
function test(){
var result=new Array();
for(var i=0;i<10;i++){
result[i]=function(){
return i;
};
}
return result;
}
输出result输出的是10个"function(){
return i;
} "这样的字符串阿,而不是0到9阿,为什么阿,求解释
------解决方案--------------------
function test(){
var result=new Array();
for(var i=0;i<10;i++){
result[i]=function(){
return i;
}();
}
return result;
}
var a=test();
alert(a);
这样试试
------解决方案--------------------
function test() {
var result = new Array();
for (var i = 0; i < 10; i++) {
(function(i){
result[i] = i
})(i);
}
return result
}
test()
alert(test())
------解决方案--------------------
function test(){
var result=new Array();
for(var i=0;i<10;i++){
result[i]=function(){
return i;
};
}
return result;
}
输出result输出的是10个"function(){
return i;
} "这样的字符串阿,而不是0到9阿,为什么阿,求解释
------解决方案--------------------
function test(){
var result=new Array();
for(var i=0;i<10;i++){
result[i]=function(){
return i;
}();
}
return result;
}
var a=test();
alert(a);
这样试试
------解决方案--------------------
function test() {
var result = new Array();
for (var i = 0; i < 10; i++) {
(function(i){
result[i] = i
})(i);
}
return result
}
test()
alert(test())
------解决方案--------------------
- JScript code
function test(){ var result=new Array(); for(var i=0;i<10;i++){ //以下为一个闭包 result[i]=function(){ return i; }; } return result; }
------解决方案--------------------