我的代码中有一个特定的循环在各种函数中多次出现。 用一个例子来说明,它几乎遵循以下几行:
for (var i=0;i<= 5; i++) {
function1(function2(arr[i],i),$('div'+i));
$('span'+i).value = function3(arr[i]);
}
当然 i 是循环计数器。为了减少我的代码大小并避免重复循环声明,我认为我应该将其替换为以下内容:
function loop(s) {
for (var i=0;i<= 5; i++) { eval(s); }
}
[...]
loop("function1(function2(arr[i],i),$('div'+i));$('span'+i).value = function3(arr[i]);");
或者我应该?我听说过很多关于 eval() 会减慢代码执行速度的说法,我希望它即使在 Nintendo DSi 浏览器中也能像正常循环一样快速运行,但我也想减少代码量。你有什么建议?
提前致谢!
最佳答案
为什么不直接将循环体放入函数中呢?
function doSomething(i, arr) {
function1(function2(arr[i],i), $('div'+i));
$('span'+i).value = function3(arr[i]);
}
并在循环中调用它:
function loop() {
for (var i = 0; i <= 5; i++) { doSomething(i, arr); }
}
关于javascript - 用 Javascript 中的 eval 替换重复出现的循环 - 好还是坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2442820/