📅  最后修改于: 2023-12-03 15:31:43.110000             🧑  作者: Mango
在JavaScript中,有时候我们需要动态地执行函数,即根据函数名称来执行相应的函数。这时候,可以使用以下两种方法来实现。
使用eval函数可以将字符串转换为JavaScript代码,并执行它。因此,我们可以使用eval函数来执行函数。
function sayHello() {
console.log("Hello World!");
}
const functionName = "sayHello";
eval(functionName + "()"); // Hello World!
上面的例子中,我们首先定义了一个函数sayHello
,然后定义了一个变量functionName
来存储函数名。最后,使用eval函数来执行函数。
需要注意的是,eval函数具有执行任何JavaScript代码的能力,并且在执行不可信来源的代码时可能存在安全风险。因此,推荐使用方法二实现动态执行函数。
在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!
希望以上内容对你有所帮助!