比较JavaScript对象"默认"版?

时间:2016-09-15 02:13:47

标签: javascript node.js

JavaScript中是否有一种方法可以检查对象是否适合某种"模板"而不是单独检查每个值?

即。我在node.js应用程序中加载了一个config.json文件,我需要确保它具有所有必需的配置选项,并为那些不存在的用户填充默认值。我宁愿只有一个"默认"配置对象并将加载的对象与它进行比较,并使用默认数据填充缺失的数据,而不是比较每个单独的密钥。

1 个答案:

答案 0 :(得分:3)

您可以使用Object.assign覆盖默认值。这是此问题的原生解决方案,之前人们使用下划线" mixin"和jquery""延伸"得到这种行为。

语法

  

Object.assign(target,... sources)

实施例

var defaults = {
   name: defaultName
}

function Factory(options={}) {
  this.settings = Object.assign({}, defaults, options);
}
Factory.prototype.getName = function() {
   return this.settings.name;
}

var myFactory = new Factory({name: "myFactory"});
myFactory.getName(); //returns "myFactory"