如何设置对象键的默认值?

时间:2015-10-20 22:47:54

标签: javascript web idioms

函数接收对象o。该功能要求它有四个键,abcd。对于每个undefined,我们要设置自定义默认值。一种选择是:

function func(o) {
    o.a = o.a || 12;
    o.b = o.b || function() {}
    // and so on
}

但是有更优雅或惯用的选择吗?

1 个答案:

答案 0 :(得分:3)

请注意,您的方法会覆盖与undefined不同的虚假值,例如0""NaNfalse

假设您只想要o的可枚举属性,可以使用Object.assign

function func(o) {
  o = Object.assign({
    a: 12,
    b: function() {}
  }, o);
}

基本上,它使用默认值创建一个新对象,并用参数中的数据覆盖它。