2016-09-15 3 views
1

個々の値を個別にチェックするのではなく、オブジェクトが「テンプレート」の種類に適合するかどうかを確認する方法はJavaScriptにありますか?JavaScriptオブジェクトを「デフォルト」バージョンと比較しますか?

つまり、node.jsアプリケーションにconfig.jsonファイルをロードしています。このファイルには、必要な設定オプションがすべて含まれていて、存在しない設定のデフォルト値が入力されている必要があります。私は単に "デフォルト"の設定オブジェクトを持っていて、読み込まれたオブジェクトとそれを比較して、個々のキーを比較するのではなく、デフォルトのデータで欠けているデータを埋めたいと思っています。

+0

使用するすべてのキーをループ。方法はありません。 'Object.assign'を使うこともできます。 – Bergi

答えて

3

Object.assignを使用すると、デフォルトを上書きできます。これは、人々がアンダースコアの "mixin"とjqueryの "e​​xtend"を使ってこの問題を解決する前に、この問題のネイティブな解決策です。

構文

Object.assign(ターゲット、...ソース)

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" 
+1

'opts = Object.assign({}、defaults、options);'おそらくあなたのデフォルトをグローバルにオーバーライドしないように少し上手です。 – zzzzBov

+0

@zzzzBovあなたは正しいです、あなたは編集を提案できますか? – Bamieh

+0

@zzzzBov nvm私は答えを更新しました – Bamieh

関連する問題