1

デフォルト値を持つparamsメンバーとのハッシュが必要です:defaults

var defaults = { item1: "def1", item2: "def2" };
var params = { item2: "param2", item3: "param3" };
var result = // some clever code here...
console.log(result); // { item1: "def1", item2: "param2", item3: "param3" };

私が理解できる最も巧妙なコードは、メンバーを反復処理し、メンバーが欠落している場合はdefaults追加することです。params独自のコードを書く代わりに、ネイティブな解決策があるのだろうか? プロトタイピングは有望に思えますが、機能オブジェクトでしか機能しないため、ここでは望んでいません。何かご意見は?

4

1 に答える 1

1

誰かがまだ興味を持っている場合:ほぼ2年後、質問で言及された巧妙なコードは次のようになると思います

__proto__: Object.create(defaults)

例を参照してください。

var defaults = { item1: "def1", item2: "def2" };
var params = { item2: "param2", item3: "param3",
  __proto__: Object.create(defaults) };

for(var i in params) console.log(i,params[i]);
// item2 param2
// item3 param3
// item1 def1

__proto__非推奨ですsetPrototypeOf()が、リンクで提案されている方法とは異なり、十分にサポートされていることに注意してください。未来がどうなるか見てみましょう。

于 2014-11-19T22:26:26.393 に答える