我正在尝试在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几乎相同。
答案 0 :(得分:1)
我找到了一种解决方法,明确告诉预期的参数是一个对象:
const workagain = (ignore, { param = 'a' } = {}) => console.log(param);
workagain(null, {});
我不知道它为什么会起作用,而我原来的(和Mozilla的)例子并不起作用。