函数接收对象o
。该功能要求它有四个键,a
,b
,c
,d
。对于每个undefined
,我们要设置自定义默认值。一种选择是:
function func(o) {
o.a = o.a || 12;
o.b = o.b || function() {}
// and so on
}
但是有更优雅或惯用的选择吗?
答案 0 :(得分:3)
请注意,您的方法会覆盖与undefined
不同的虚假值,例如0
,""
,NaN
,false
。
假设您只想要o
的可枚举属性,可以使用Object.assign
:
function func(o) {
o = Object.assign({
a: 12,
b: function() {}
}, o);
}
基本上,它使用默认值创建一个新对象,并用参数中的数据覆盖它。