在对象析构函数中使用默认值,同时保留任何非默认值
Using default values in object destructuring while retaining any un-defaulted values
是否可以通过析构函数设置一些默认参数,同时保留默认值中未考虑的任何额外值?例如:
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"的键。所以我想用。。。休息之后。。。传播
您不能使用当前的es6,但您可以通过阶段2预设使用上可用的rest运算符。
function f({speed= 0, location: 'home', ...others}) {
return Object.assign({}, {speed, location}, others);
}
是否可以通过析构函数设置一些默认参数,同时保留默认值中未考虑的任何额外值?
目前没有。您可以将默认值存储在一个单独的对象中,并使用Object.assign
:
var ob = {speed: 5, distance: 8};
var defaults = {speed: 0, location: 'home'};
function f(obj) {
return Object.assign({}, defaults, obj);
}
f(ob);
相关文章:
- 我的shareService在angular 2中发送值工作正常,但当我渲染我的另一个组件时,会获得默认值
- jquerydatetimepicker日期和时间应在框默认值中,而无需单击框
- 如果值为空,如何设置输入的默认值?jQuery
- 骨干模型默认值-todos.js示例中不必要的代码
- jquery日期选择器年份范围默认值
- Html5输入属性的默认值,如最小值、最大值、大小等
- 根据两个下拉列表的默认值禁用按钮
- 如何创建具有默认值的JavaScript对象字段?(AngularJS模型相关)
- Angularjs-设置不带ng选项的select的默认值
- jQuery Datepicker从日期开始设置默认值
- 如何设置浏览器打开的文件对话框的文件名(一些默认值)
- JQuery BlockUI鼠标加载光标没有't在Google Chrome中返回默认值
- Selectize选择默认值
- 在KeystoneJS中为Types.Money设置默认值
- 是否可以同时为一个元素的所有事件指定阻止默认值
- 我可以通过使用函数绑定来保留默认值吗?如果没有,为什么
- 保留默认值并将其传递
- 如何使用默认值填充文本字段或将其保留为空,所有这些都取决于下拉列表中的选择
- 将默认值保留为文本框中的隐藏字段
- 在对象析构函数中使用默认值,同时保留任何非默认值