所属分类:web前端开发
我们将使用 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 更安全,因为它们不执行任意代码,而是直接通过名称引用函数。