📅  最后修改于: 2023-12-03 15:38:02.078000             🧑  作者: Mango
在 JavaScript 中,我们可以通过名称调用函数。但是,如果我们需要从字符串中获取函数名称并调用该函数,应该如何实现呢?
我们可以使用 JavaScript 中的 eval() 函数和 window 对象。
eval() 函数可以将字符串作为代码来执行。window 对象可以访问任何全局变量和函数。
我们可以使用以下代码从存储在字符串中的名称调用函数:
const functionName = "函数名称"; // 要调用的函数名称
const functionArguments = ["参数1", "参数2", ...]; // 函数的参数列表
const functionToCall = window[functionName]; // 获取函数
const result = functionToCall.apply(null, functionArguments); // 调用函数
console.log(result); // 输出函数返回值
在这个例子中,我们首先定义了要调用的函数名称和函数参数列表。然后,我们使用 window 对象获取该函数,并使用 apply() 方法来调用该函数并传递参数。
尽管使用 eval() 函数可以将字符串作为代码来执行,但这很容易引起安全漏洞。因此,在使用 eval() 函数时,我们应该确保代码的来源是可信的。
另外,我们还应该注意确保我们从字符串中获取的函数名称实际上是存在的全局函数或已经在当前作用域内定义的函数。
在 JavaScript 中,我们可以使用 eval() 函数和 window 对象来从存储在字符串中的名称调用函数。但是,我们必须小心谨慎地使用 eval() 函数,并确保从字符串中获取的函数名称实际上是存在的全局函数或已经在当前作用域内定义的函数。