JavaScript 如何从存储在字符串中的名称调用一个函数

JavaScript 如何从存储在字符串中的名称调用一个函数

我们将使用eval()函数从存储在字符串中的名称中调用一个函数。eval()函数将一个字符串作为JavaScript代码进行评估。这使得我们可以通过将包含函数名称的字符串作为参数传递给eval()函数来调用该函数。

例子

下面是一个完整的例子,说明如何使用JavaScript从存储在字符串中的名称中调用一个函数。

// Define the function that we want to call
function sayHello() {
   console.log("Hello, world!");
}

// Store the function name as a string
let functionName = "sayHello";

// Use the `eval()` function to convert the string to a function call
eval(functionName + "()");
  • 在上面的例子中,我们首先定义了一个叫sayHello()的简单函数,它只是将 “Hello, world!”记录到控制台。接下来,我们定义了一个名为functionName的变量,用来存储字符串 “sayHello”,这是我们要调用的函数的名称。

  • 最后,我们使用eval()函数将字符串functionName转换成函数调用,将其与实际调用函数所需的圆括号()连接起来。

  • eval()函数是JavaScript的一个强大但有潜在危险的功能,它允许你将一个字符串当作JavaScript代码来评估。通常不建议在生产代码中使用eval(),因为它可以被用来执行任意代码,这可能是一种安全风险。

替代方法

值得一提的是,有一些更安全的方法可以从存储在字符串中的函数名称中调用函数,而不使用eval,例如

let functionName = "sayHello";
let functionObj = window[functionName];
functionObj();

let functionName = "sayHello";
let functionObj = window['sayHello'];
functionObj();

这些替代方法比使用eval更安全,因为它们不会执行任意代码,而是直接引用函数的名称。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

JavaScript 教程