为了账号安全,请及时绑定邮箱和手机立即绑定

如何通过名称作为字符串从函数中引用子函数

如何通过名称作为字符串从函数中引用子函数

冉冉说 2023-01-06 15:57:14

谁能告诉我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贡献1546条经验 获得超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");


查看完整回答
反对 回复 2023-01-06
  • 1 回答
  • 0 关注
  • 9 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信