![](/img/trans.png)
[英]How can I set a default property for an object that's passed into a constructor?
[英]How can I set default values for an object's keys?
函数接收对象o
。 该功能要求它有四个键, a
, b
, c
, d
。 对于每个undefined
,我们要设置自定义默认值。 一种选择是:
function func(o) {
o.a = o.a || 12;
o.b = o.b || function() {}
// and so on
}
但是有更优雅或惯用的选择吗?
请注意,您的方法将覆盖与undefined
不同的虚假值,如0
, ""
, NaN
, false
。
假设您只想要o
的可枚举属性,可以使用Object.assign
:
function func(o) {
o = Object.assign({
a: 12,
b: function() {}
}, o);
}
基本上,它使用默认值创建一个新对象,并使用参数中的数据覆盖它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.