【问题标题】:How can I set default values for an object's keys?如何为对象的键设置默认值?
【发布时间】:2016-01-19 18:57:51
【问题描述】:

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

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

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

【问题讨论】:

  • @RickHitchcock 当然你是对的,解决了这个问题。
  • 如果 o.a0,而您实际上是想将其作为值呢?

标签: javascript web idioms


【解决方案1】:

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

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

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

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

【讨论】:

  • @AvivCohn 它是 ES6 的一部分。受 Chrome 45、Firefox 34、Edge build 10240、Opera 32、Safari 9 支持。It can be polyfilled.
猜你喜欢
  • 2021-07-26
  • 2012-02-26
  • 2014-01-16
  • 2011-10-27
  • 2021-08-24
  • 1970-01-01
  • 1970-01-01
  • 2023-02-09
  • 2015-01-10
相关资源
最近更新 更多