GOT*_*O 0 5 javascript default-parameters ecmascript-6
ECMAScript 6引入的功能之一是能够在JavaScript中指示未指定参数的默认值,例如
function foo(a = 2, b = 3) {
return a * b;
}
console.log(foo()); // 6
console.log(foo(5)); // 15
Run Code Online (Sandbox Code Playgroud)
现在我想知道是否可以对Function构造函数动态创建的函数使用默认参数,如下所示:
new Function('a = 2', 'b = 3', 'return a * b;');
Run Code Online (Sandbox Code Playgroud)
Firefox 39似乎已经支持默认参数(参见此处),但上面的行被拒绝作为语法错误.
现在我想知道是否也可以对使用 Function 构造函数动态创建的函数使用默认参数
是的,根据规范这是可能的。参数参数一如既往地连接起来,然后根据FormalParameters产生式进行解析,其中包括默认值。
Firefox 39 似乎已经支持默认参数,但上面的行被拒绝作为语法错误。
好吧,这是一个错误:-)(可能是这个)
您应该能够通过使用来解决它
var fn = Function('return function(a = 2, b = 3) { return a * b; }')();
Run Code Online (Sandbox Code Playgroud)