【问题标题】:Turn a string into function in JS [duplicate]在JS中将字符串转换为函数[重复]
【发布时间】:2021-01-11 14:38:07
【问题描述】:

我的问题很简单,我在这个论坛中找不到正确的答案。我的坏...

我想这样做:

    const dataReceived = foo;
    foo(state);

我该怎么做? 我读到最好避免使用 eval,并且我无法使用 new Function 获得成功。 感谢您的帮助!

编辑 感谢您的回答。 我与 React 一起工作。 在我的减速器中,我有一个 create_item 案例。 我可以访问 action.category,它可以是“货币”或“国家”这个词。

我想要做的是根据 action.category 中的内容启动方法 createCurrency 或 createCountry。 这就是我尝试加入“create”和“action.category”来创建动态函数名称的原因。 但这似乎是一个糟糕的主意...

【问题讨论】:

  • 请使用tour 并阅读How to Ask。您的问题中没有任何内容需要evalnew Function
  • 如果你现有的代码+一些示例数据。目前尚不清楚您要做什么。 // 你想解决什么实际问题?字符串从何而来?
  • @Liam 这是对这个问题的一种可能解释,但是是的,它有点不清楚。
  • foo 的值是多少? dataReceived 起什么作用? state 的值是多少?您只是展示了如何将一个变量的值分配给另一个变量,以及如何将一个变量作为函数调用。如果foo 包含您的代码按原样工作的函数值。请提供更多信息,目前尚不清楚问题所在。
  • 关于你的更新,@rounin 的回答将是要走的路。

标签: javascript string function transform


【解决方案1】:

最简单的方法是创建一个object,其中包含一个entry,其中:

  • keystring
  • valuefunction

示例:

const myObject = {

  myFunction: () => { [... DO SOMETHING...] }

}

随后您将能够调用该函数,使用:

myObject.myFunction();

当您使用括号符号时,上述内容会变得更强大。

示例:

const myString = 'myFunction';

myObject[myString]();

【讨论】:

    猜你喜欢
    • 2020-11-22
    • 1970-01-01
    • 2020-04-24
    • 2019-10-27
    • 2016-09-06
    • 1970-01-01
    相关资源
    最近更新 更多