避免在特定场景中使用eval()

时间:2014-06-24 07:26:12

标签: 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);
        } 

我希望,代码清楚我要做的事情。

1 个答案:

答案 0 :(得分:4)

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