问题描述
我试图在不使用 'eval()' 函数的情况下在 javascript 中执行一个字符串,但我坚持了下来。 举个例子:
var textFunctionHolder = 'callA(15,15,120,75,callB,callC,20,240,150,callD,30,115,25,callZ)';
变量“textFunctionHolder”的字符串/内容是通过另一个函数生成的。 在这个例子中,结果直接粘贴在var里面以简化它。
现在,变量 'textFunctionHolder' 或更多变量,变量 'textFunctionHolder' 内的函数(作为字符串)应该像这样执行:
callA(15,callZ
);
有没有办法在不使用 eval() 的情况下做到这一点? (变量“textFunctionHolder”的内容也可以更长。)
非常感谢您的帮助。
解决方法
你可以试试这样的。
function test(test){
console.log(test);
}
var fnstring = "test('your params')";
const fn = new Function(`return ${fnstring}`);
console.log(fn());