我想要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
中,如果它们在那里丢失的话。我想知道是否有一些原生解决方案而不是编写自己的代码?原型设计似乎很有希望,但它只适用于功能对象,我不想在这里。有什么想法吗?
答案 0 :(得分:0)
如果有人仍然感兴趣:差不多两年后,我想问题中提到的聪明代码将是
__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__
为deprecated,但不像链接建议的setPrototypeOf()
方法那样得到很好的支持。让我们看看未来会是什么。