将字符串更改为JavaScript中的函数,而不使用eval
,可以使用以下方法:
Function
构造函数:const str = "function() { return 'Hello, world!'; }";
const func = new Function(str);
console.log(func()); // 输出:Hello, world!
setTimeout
:const str = "function() { return 'Hello, world!'; }";
setTimeout(str, 0); // 输出:Hello, world!
window.Function
:const str = "function() { return 'Hello, world!'; }";
const func = window.Function(str);
console.log(func()); // 输出:Hello, world!
window.eval
:const str = "function() { return 'Hello, world!'; }";
const func = window.eval(str);
console.log(func()); // 输出:Hello, world!
需要注意的是,使用这些方法可能存在安全风险,因为它们可能会执行恶意代码。因此,在使用这些方法时,请确保字符串来自可信来源,并且在使用之前对其进行验证。
领取专属 10元无门槛券
手把手带您无忧上云