Hash.merge - Prototype JavaScript 框架

Xunxin Prototype API

merge
1.6 modified

merge(object) -> newHash

object 和当前的 hash 实例合并,返回合并后的结果。在 v1.6.0 之前: 这是一个破坏性的方法(对象的值将会被增加到当前 hash 中)。从 v1.6.0 开始: 这不再是一个破坏性的方法(在合并之前,hash 已被克隆)。

如果存在相同的“键”,原 hash 中该键对应的值会被参数 object 中的值覆盖。 这经常被用于选择性的修改一些指定“键”的值(例如:在一系列的选项上应用一些级别控制)。

参数 object 可以是一个 Hash 或者是一个普通的 Object

样例

从 1.6.0 开始,Hash#merge 返回一个新的 hash:

var h = $H({ name: 'Prototype', version: 1.5 }); 
h.merge({version: 1.6, author: 'Sam' }).inspect(); 
// -> #<Hash:{'name': 'Prototype', 'version': 1.6, 'author': 'Sam'}> 
h.inspect(); 
// -> #<Hash:{'name': 'Prototype', 'version': 1.5}> 

在 1.6.0 之前,Hash#merge 会破坏原有的 hash:

var h = $H({ name: 'Prototype', version: 1.5 }); 
h.merge({version: 1.6, author: 'Sam' }).inspect(); 
// -> #<Hash:{'name': 'Prototype', 'version': 1.6, 'author': 'Sam'}> 
h.inspect(); 
// -> #<Hash:{'name': 'Prototype', 'version': 1.6, 'author': 'Sam'}> 

参见

在 1.6.0 及以上的版本中,如果你需要一个 破坏性 的合并操作,请使用 Hash#update