如何将字符串转换为函数?
我见过“如何将字符串转换为javascript函数调用?”和其他一些人,但他们不适合。
我不能以任何方式使用eval
。
我无法访问实际的字符串。将其视为一个预定义的字符串,在您尝试访问该值时会引发错误。
解决方案问题:有没有办法不使用eval
但仍然可以创建parseFunction
函数,例如parseInt
和parseFloat
,但有函数?
答案 0 :(得分:4)
函数构造函数接受一个定义函数intself的字符串,所以你可以这样做:
var f = new Function(string);
要打电话:
new Function('alert("x");')();
您将看到显示 x
的提醒传递参数定义如下:
new Function(arg1, arg2, argN, functionBody)
所以你可以像这样传递一个警告字符串:
new Function('arg', 'alert(arg);')('hello')