js对象深拷贝

71 阅读1分钟

js对象深拷贝

// 深拷贝
export const copyObject = (orig) => {
  var copy = Object.create(Object.getPrototypeOf(orig))
  copyOwnPropertiesFrom(copy, orig)
  return copy
}

function copyOwnPropertiesFrom(target, source) {
  Object.getOwnPropertyNames(source).forEach(function (propKey) {
    var desc = Object.getOwnPropertyDescriptor(source, propKey)
    Object.defineProperty(target, propKey, desc)
  })
  return target
}

注意只适合对象的拷贝