首页 > 开发 > JS > 正文

JavaScript中循环内调用函数的问题?

2017-09-05 07:26:48  来源:网友分享
function constfuncs() {    var funcs = [];    var helper=function(e){        alert(e);    }    for(var i = 0; i < 10; i+=1) {        funcs[i] = helper(i)     }    return funcs;}constfuncs()[0];

这段代码为什么会alert 10次?

解决方案

当你调用constfuncs函数的时候

    for(var i = 0; i < 10; i+=1) {        funcs[i] = helper(i)     }

已经执行了10次啊。。 请注意helper(i)是函数调用 -.-
所以你的funcs返回的其实是是一个长度为10的数组,里面都是undefined,即helper函数的返回值