ECMAScript 6引入的功能之一是能够在JavaScript中指示未指定参数的默认值,例如
function foo(a = 2, b = 3) {
return a * b;
}
console.log(foo()); // 6
console.log(foo(5)); // 15
现在我想知道是否可以对使用Function
构造函数动态创建的函数使用默认参数,如下所示:
new Function('a = 2', 'b = 3', 'return a * b;');
Firefox 39似乎已经支持默认参数(see here),但上述行被拒绝作为语法错误。
答案 0 :(得分:0)
因为new Function
是eval的一种形式,您可以使用以下代码执行该任务:
eval('function bar (a = 2, b = 3) { return a * b; }');
答案 1 :(得分:0)
我不知道这是否应该有效 - 其他人将不得不告诉你 - 但如果它仍然是一个问题,为什么不使用eval()?
关于这一点的内容应该是合法的:
var fct1 = eval("(function foo(a = 2, b = 3) { return a * b; })")