如何执行一个JavaScript函数,当我发送它的名字作为字符串动态不带参数

How to execute a JavaScript function when I send its name as string dynamically without parameters

本文关键字:动态 参数 字符串 执行 何执行 一个 JavaScript 函数      更新时间:2023-09-26

我想执行JavaScript函数,该函数的名称动态地作为字符串出现。我不需要在执行函数时传递任何参数。

请问谁能指导我如何实现这一点?

一个简单的方法

eval("SomeFunction()");

var funcName = "SomeFunction";
var func == window[funcName];
func();

危险,但你可以使用eval(method_name+"()")

你说的是' eval() ' ??

var foo = "alert('bar')";
eval(foo);

函数a() {console.log("是的!");}var funcName = 'a';//获取函数名这(funcName) ();

如果函数是全局的,你应该在浏览器中执行window[funcName]()

使用eval是最糟糕的方法。无论如何都要避免。

您可以这样使用window[functionname]():

function myfunction() {
    alert('test');
}
var functionname = 'myfunction';
window[functionname]();

这样你也可以选择添加参数

也许更安全的方法是这样做(这里只有伪代码):

function executer(functionName)
{
  if (functionName === "blammo")
  {
    blammo();
  }
  else if (functionName === "kapow")
  {
    kapow();
  }
  else // unrecognized function name
  {
    // do something.
  }

您可以使用switch语句(这似乎是一个更好的结构):

switch (functionName)
{
  case "blammo":
    blammo();
    break;
  case "kapow":
    kapow();
    break;
  default:
    // unrecognized function name.
}

您可以通过创建函数名数组来优化这一点,在数组中搜索所需的函数名,然后执行数组中的值。