谁能告诉我eval在这段代码中我可以用什么来代替邪恶?var x = function(funcName) { function funcA () { console.log("a"); } function funcB () { console.log("b"); } var funcToRun = eval(funcName); return funcToRun();};x("funcA");x("funcB");我见过很多不同的解决方案,但似乎没有一个适合这种情况。本质上,我需要能够将字符串作为要运行的子函数的“配置”传递给函数。我无权访问调用的代码x,我刚刚被告知只能在调用中配置原始值和字符串值。PS 这是实际功能的超级简化版。
1 回答
蝴蝶不菲
TA贡献1810条经验 获得超4个赞
您可以只创建一个对象并将这些函数添加为属性,然后您可以使用字符串访问这些属性。
var x = function(funcName) {
function funcA() {
console.log("a");
}
function funcB() {
console.log("b");
}
const fs = {
funcA,
funcB
}
var funcToRun = fs[funcName]
return funcToRun();
};
x("funcA");
x("funcB");
添加回答
举报
0/150
提交
取消
