📌  相关文章
📜  javascript 按字符串名称执行函数 - Javascript (1)

📅  最后修改于: 2023-12-03 15:31:43.110000             🧑  作者: Mango

JavaScript按字符串名称执行函数

在JavaScript中,有时候我们需要动态地执行函数,即根据函数名称来执行相应的函数。这时候,可以使用以下两种方法来实现。

方法一:使用eval函数

使用eval函数可以将字符串转换为JavaScript代码,并执行它。因此,我们可以使用eval函数来执行函数。

function sayHello() {
  console.log("Hello World!");
}

const functionName = "sayHello";
eval(functionName + "()"); // Hello World!

上面的例子中,我们首先定义了一个函数sayHello,然后定义了一个变量functionName来存储函数名。最后,使用eval函数来执行函数。

需要注意的是,eval函数具有执行任何JavaScript代码的能力,并且在执行不可信来源的代码时可能存在安全风险。因此,推荐使用方法二实现动态执行函数。

方法二:使用window对象

在JavaScript中,所有的全局变量和函数都是window对象的属性。因此,我们可以通过window对象来访问并执行函数。

function sayHello() {
  console.log("Hello World!");
}

const functionName = "sayHello";
window[functionName](); // Hello World!

使用window对象的方式更加安全,因为它不会执行任意的JavaScript代码。

结论

以上介绍了两种JavaScript按字符串名称执行函数的方法,推荐使用第二种方法。如果需要执行的函数来自一个对象,则可以使用以下方式来执行。

const obj = {
  sayHello: function() {
    console.log("Hello World!");
  }
};

const functionName = "sayHello";
obj[functionName](); // Hello World!

希望以上内容对你有所帮助!