【发布时间】:2018-04-17 10:58:19
【问题描述】:
我们可以同时解构:({a, b}) => ( a + b ) 并获取参数:(...args) => ( f({...args}) ),同时用于 ES6 中的箭头函数。
寻找类似(...args = {a, b}) => ( a + b + f({...args}) )的东西。
我目前的解决方案是:
({a, b}) => {
const {...args} = {a, b}
return a + b + f({...args})
}
但它是多余的 或(感谢 nnnnnn 和 Dmitry)
(args) => {
const {a, b} = args
return a + b + f({...args})
}
这样冗余更少,肯定更好,但仍不能完全令人满意。
【问题讨论】:
-
如果您使用解构参数
({a,b})定义函数,这是否意味着该函数仅使用一个参数(一个对象)被调用? -
不只是
({a, b}) => a + b + f(a, b)或({a, b}) => a + b + f({a, b}) -
@Slai。在我真正的问题中,我不只有 a 和 b。我有 15 个名称很长的参数。根据条件,我要么使用它们并返回一些东西,要么委托给另一个函数。这些不是位置参数,而是基于键的参数。但你在技术上是正确的。然而没有帮助:(。
-
那么当您调用另一个函数
f()时,您想将包含所有基于键的参数的原始对象传递给它吗?f()的签名是什么? -
假设它必须是一个箭头函数(因此没有
arguments对象)我倾向于做(args) => { const {a,b} = args; return a + b + f(args) }- 有点像你当前的解决方案,除了你只需要列出 { a,b} 部分在一个地方。
标签: javascript ecmascript-6 arrow-functions