我想在我的Node服务器中运行用户定义的函数,一种可能的解决方案是将子例程存储为字符串,并将其与参数一起传递给Function构造函数,并获得结果。这绝对是一个非常奇怪的用例,但是我想不到更好的方法了。
无论如何,是这样的:
var sum = new Function('a', 'b', 'return a + b');
console.log(sum(2, 6));
// expected output: 8
当然,Function构造函数无权访问局部变量,这很棒。但是,这样做可能会带来哪些安全风险?我立即想到的是无限循环。我一点也不担心性能问题,因为在这种情况下这并不重要。
在此问题上,我们将不胜感激。