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
函数的返回值