【发布时间】:2016-07-28 17:51:15
【问题描述】:
是否可以通过解构设置一些默认参数,同时仍保留默认未考虑的任何额外值?例如:
var ob = {speed: 5, distance: 8}
function f({speed=0, location='home'}) {
return {speed: speed, location: location, /* other keys passed in with their values intact */}
}
f(ob) // Would like to return {speed: 5, location: 'home', distance: 8}
编辑:我的函数不知道可能作为附加项传入的键的名称。例如:该函数不知道它是接收/返回一个名为“distance”的键,还是一个名为“foo”的键。所以我正在考虑某种使用 ...rest 后跟 ...spread。
【问题讨论】:
-
return { speed, location, distance: 8 } -
我更多的是寻找一种我不知道将要传入的额外密钥的情况。我将进行编辑以使其更清楚。
-
有一个对象propertyrest/spread的提案,但目前还只是一个提案。
-
考虑到您甚至有指向该提案的链接,我想说这是对我问题的明确回答。
标签: javascript ecmascript-6 destructuring