默认哈希值

时间:2013-02-07 10:37:04

标签: javascript hashmap

我想要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中,如果它们在那里丢失的话。我想知道是否有一些原生解决方案而不是编写自己的代码?原型设计似乎很有希望,但它只适用于功能对象,我不想在这里。有什么想法吗?

1 个答案:

答案 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()方法那样得到很好的支持。让我们看看未来会是什么。