我在几个地方读过,我们应该避免在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);
}
我希望,代码清楚我要做的事情。
答案 0 :(得分:4)
levelsArray.memberProvider = (function(p) {
return function (item) { return item[p]; };
})(prop);