解构为Firefox中的第二个参数

时间:2017-02-27 03:41:37

标签: javascript ecmascript-6 default-parameters

我正在尝试在ES6上为一个在Firefox 51中使用默认参数的函数进行解构的简单示例。这按预期工作:

const work = ({ param = 'a' }) => console.log(param);
work({});

但是,当我们尝试将解构作为第二个参数时:

const nowork = (ignore, { param = 'a' }) => console.log(param);
nowork('', {});

我在终端中收到此错误:

SyntaxError: missing : after property id

所以问题是,我的代码有什么问题,还是Firefox错误?相同的代码适用于Chrome。 Test it in JSFiddle(评论/取消注释并打开控制台)。

修改:请注意,这与an example on Mozilla Hacks from 2015几乎相同。

1 个答案:

答案 0 :(得分:1)

我找到了一种解决方法,明确告诉预期的参数是一个对象:

const workagain = (ignore, { param = 'a' } = {}) => console.log(param);
workagain(null, {});

我不知道它为什么会起作用,而我原来的(和Mozilla的)例子并不起作用。