将Javacript对象与“默认”版本进行比较?

有没有在Javascript的方法来检查一个对象是否适合一种“模板”,而不是单独检查每个值?

即我加载一个config.json文件在一个node.js应用程序,我需要确保具有所有必要的configuration选项,并填写不存在的默认值。 我宁愿只是有一个“默认”的configuration对象,并将加载的对象与它比较,并用缺省数据填充缺省数据,而不是比较每个单独的键。

您可以使用Object.assign来覆盖默认值。 这是这个问题的本地解决scheme,之前,人们使用下划线的“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"