我对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中实现?