Javascript 新函数()没有访问参数的权限?

Javascript 新函数()没有访问参数的权限?,javascript,Javascript,我尝试在计算器中使用new Function(),但发现它无法访问我传递给它所在函数的参数。我是这样使用它的: function go(a, b, c) { return new Function('return a + b + c')(); } go(4, '/', 2); 但它不起作用,因为它说a是未定义的。有没有办法解决这个问题?您可能需要: function go(a, b, c) { return new Function('return ' + a + b + c

我尝试在计算器中使用
new Function()
,但发现它无法访问我传递给它所在函数的参数。我是这样使用它的:

function go(a, b, c) {
    return new Function('return a + b + c')();
}

go(4, '/', 2);
但它不起作用,因为它说a是未定义的。有没有办法解决这个问题?

您可能需要:

function go(a, b, c) {
    return new Function('return ' + a + b + c + ';')();
}

go(4, '/', 2);
但这不是正确的方法。为您支持的每个操作创建一个独特的函数。

也许是这样

var add = function (a, b, c) {
  return a + b + c;
};
然后以这样的方式调用:

var sum = add(3, 4, 5); // sum is 12

我相信“真理”对你努力实现的目标的评估是正确的。然而,我很好奇为什么
a
没有定义

事实证明,规范规定,当
函数
用作构造函数时,被评估函数体的范围是全局环境:


这与使用当前作用域的
eval()
不同。

为什么要返回函数来返回函数?为什么不
return function(){return a+b+c;}-那就行了。@Truth:我认为这是一个愚蠢的例子来说明这个问题:/这到底应该做什么?Pointy是正确的。如果你要写一个返回函数的函数。。。那么您至少可以实际返回一个“function()”;)那不是他想做的。请注意,go的一个参数是运算符。