如何解决如何通过函数名称从字符串中引用子函数
有人可以告诉我用这段代码替换邪恶的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
的代码,只是被告知只能在调用中配置原始值和字符串值。
P.S。这是实际功能的超级简化版本。
谢谢! 詹姆斯
解决方法
您可以只创建一个对象并将这些函数添加为属性,然后可以使用字符串进行访问。
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");
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。