JS 深度 merge 一个对象

9 min read
const merge = (target, source) => {
  const keys = Object.keys(target);
  keys.forEach(k => {
    if (source.hasOwnProperty(k)) {
      if (Object.prototype.toString.call(source[k]) === '[object Object]') {
        merge(target[k], source[k]);
      } else {
        target[k] = source[k];
      }
    }
  });
};