javascript - 在特定场景中避免 eval()

标签 javascript eval

我在很多地方读到我们应该避免在 JavaScript 代码中使用 eval。 但是,我有一个场景,我无法删除它。需要帮助

        var levels=[];
        for(var k=0;k<levels.length;k++){
            var levelsArray={};
            levelsArray["name"]=levels[k].name;
            levelsArray["caption"]=levels[k].caption;
            var prop = levels[k].name;
            eval("levelsArray[\"memberProvider\"]= function (item) { return item." + prop + ";}");
            levels.push(levelsArray);
        } 

我希望代码很清楚我想要做什么。

最佳答案

levelsArray.memberProvider = (function(p) {
  return function (item) { return item[p]; };
})(prop);

关于javascript - 在特定场景中避免 eval(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24380726/

相关文章:

javascript - 如何使用 setTimeout 方法在 "x"秒后刷新 jTable?

javascript - 为什么我在 AngularJS 工厂中使用 .then() 没有得到正确的响应/错误?

javascript - 如何在 Sequelize.js + Postgres.js 中给出主键和外键关系

python - 使用 dict 进行单元测试 __repr__ 的正确方法

javascript - 为什么使用 JavaScript eval 函数是个坏主意?

lisp - EVAL:Common LISP 中的未定义函数

ruby - ruby 中 "#{}"字符串的惰性求值

javascript - 使用 jQuery 手动显示模式时出现问题( Bootstrap )

javascript - 与 JS 类中的函数混淆

javascript - "eval"是不是只能用 JS "switch"作为表达式?