合并两个JavaScript对象

用另一个的键/值对扩展JavaScript对象


使用以下帮辅助函数,您可以将两个对象合并为一个新对象:


function extend(obj, src) {
  for (var key in src) {
      if (src.hasOwnProperty(key)) obj[key] = src[key];
  }
  return obj;
}

// example
var a = { foo: true }, b = { bar: false };
var c = extend(a, b);

console.log(c);
// { foo: true, bar: false }
      

当将选项字典与功能或插件中的默认设置合并时,这通常很有用。

如果不需要支持IE 8,则可以使用Object.keys来实现相同的功能:


function extend(obj, src) {
  Object.keys(src).forEach(function(key) { obj[key] = src[key]; });
  return obj;
}
      

这代码更少,并且速度更快。