为什么胖箭头函数不接受没有括号的单个参数销毁?

时间:2017-10-12 11:03:13

标签: javascript ecmascript-6

我对JavaScript中的胖箭头功能有疑问。

正如标题所说,胖箭头函数在破坏参数时需要实际的括号,即使只使用了一个参数并因此被破坏,我想知道这个“异常”是否有意或是否可以在ECMAScript将来会怎样?

例如,这可以按预期工作:

let func = arg1 => {...}; // Single param

然而,这些不能按预期工作:

let func = => {...}; / let func => {...}; // No params
let func = arg1, arg2, ...restArg => {...}; // Multiple params

这样他们就可以了:

let func = () => {...}; // No params
let func = (arg1, arg2, ...restArg) => {...}; // Multiple params

现在我们可以说我们想要映射一个对象的条目:

let obj = {
    x: 1,
    y: 2,
};

let objEntries = Object.entries(obj); // Array containing obj's entries

这应该是应该的:

objEntries.map(entry => {...}) // entry: ['x', 1], ['y', 2]

在这个例子中,我试图破坏这个条目:

objEntries.map([key, value] => {...}) // Fails even though I am only using 1 param
objEntries.map(([key, value]) => {...}) // Succeeds like expected

正如我之前提到的,我想知道为什么在胖箭头函数的括号内部进行破坏需要实际的括号,即使只使用并因此只破坏一个参数?这是故意的还是将来可能会在ECMAScript中实现?

0 个答案:

没有答案