今天看代码,遇到一个eval函数的问题,到现在翻了很多博文,还是不是很懂eval函数,有个一直没法理解的代码如下:javascript/*varstart=[],end=[],timings=[];*/functionf(){//模拟程序执行时间varsum=0;for(vari=0;i<100000;i++){sum=sum/(i+1);}}functionrepeat(n,action){for(vari=0;ieval(action);//eval函数 }}functionbenchmark(){varstart=[],end=[],timings=[];repeat(100,"start.push(newDate().getTime());f();end.push(newDate().getTime())");for(vari=0;itimings[i]=end[i]-start[i]; }returntimings;}benchmark();//结果为:[]//如果我把上面的benchmark中的局部变量移到全局就一切正常.如果我把上面的benchmark中的局部变量移到全局就一切正常.这里的eval函数为何会产生这种效果?难道相当于将eval函数别名化了?
慕森王
相关分类