假设您动态生成JS函数的主体,或者从数据库中检索它,并且想要生成相关的函数并将其分配给对象的属性。
到目前为止,我已经尝试过eval()
,但是除了将函数分配给值之外,它还执行它。有更好的方法吗?
答案 0 :(得分:3)
您可以使用Function
构造函数,但不能:
var function_body = "var d = b + c; return a + d;";
var my_function = new Function("a", "b, c", function_body);
console.log(my_function(2, 4, 6)); // 12
这是一个糟糕的主意; eval
是邪恶的,无论使用在哪里,都几乎引入了许多安全漏洞。 eval
的任何形式都应避免,例如瘟疫。