日期:2014-05-16  浏览次数:20429 次

谁能帮我看看这个函数阿,为什么返回的值那么的奇怪阿
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;
}

------解决方案--------------------
探讨

JScript code
function test(){

var result=new Array(); 

for(var i=0;i<10;i++){
//以下为一个闭包
result[i]=function(){

return i;
};
}
return result;
}
……