javascript - 用 Javascript 中的 eval 替换重复出现的循环 - 好还是坏?

标签 javascript eval

我的代码中有一个特定的循环在各种函数中多次出现。 用一个例子来说明,它几乎遵循以下几行:

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/

相关文章:

python - python 中导入类的范围是什么?

javascript - Braintree 多个设置调用在多个 onPaymentMethodReceived 事件中产生

javascript - 基于多个选择值显示图像

javascript - 将 require.js 与 Twitter Boostrap API 和主干一起使用

javascript - 解析以字符串形式存储在对象常量/JSON语法中的函数并进行区分

php - 如何将 PHP 和 JavaScript 字符串与引号连接起来以正确求值

javascript - 在记录 Action 中变得空虚 - twilio

javascript - 在 React 组件上使用 CSSTransitionGroup 会出错

javascript - JSON 到 JavaScript 对象 #text 属性

Javascript eval 多个变量不起作用