JavaScript深浅拷贝

发布时间:2024年01月15日

1. js浅拷贝只是创建了一个新的对象,复制了原有对象的基本类型的值。

const shallowCopy = (target) => {
    return Object.assign({}, target)
  }
const shallowCopy1 = (target) => {
    return {...target}
  }

手写实现

const shllowClone = (target) => {
  // 创建新对象
  const cloneObj = Array.isArray(target) ? [] : {}
  for (let key in target) {
    // 如果属性是原对象的直接属性(不是继承的属性),则将它赋值给新对象
    if (target.hasOwnProperty(key)) {
      cloneObj[key] = target[key]
    }
  }
  return cloneObj
}

?2. 深拷贝的原理和实现

将一个对象从内存中完整地拷贝出来一份给目标对象,并从堆内存中开辟一个全新的空间存放新的对象,且新对象的修改并不会改变原对象,二者实现真正的分离

文章来源:https://blog.csdn.net/qq_39579242/article/details/135556407
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。