当前位置: 首页 > wzjs >正文

大网站开发网店平台排名

大网站开发,网店平台排名,企业人力资源管理师报名入口官网,腾讯云服务器购买流程object.assign和扩展运算法是深拷贝还是浅拷贝,两者区别 1. 浅拷贝的本质2. Object.assign 和扩展运算符的区别‌3. 具体场景对比‌合并多个对象‌‌复制数组‌‌处理默认值‌ ‌4. 如何实现深拷贝?JSON.parse(JSON.stringify(obj))‌‌递归深拷贝函数第…

object.assign和扩展运算法是深拷贝还是浅拷贝,两者区别

    • 1. 浅拷贝的本质
    • 2. `Object.assign` 和扩展运算符的区别
    • ‌3. 具体场景对比
      • ‌合并多个对象
      • ‌‌复制数组‌
      • ‌处理默认值‌
    • ‌4. 如何实现深拷贝?
      • `JSON.parse(JSON.stringify(obj))‌`
      • ‌递归深拷贝函数
      • 第三方库(如 `Lodash 的 _.cloneDeep`)
    • 5. 总结

)

1. 浅拷贝的本质

浅拷贝的定义‌

只复制对象的第一层属性(基本类型直接复制值,引用类型复制内存地址)。
如果属性是对象或数组,修改拷贝后的对象会直接影响原对象。

const original = { a: 1, b: { c: 2 } };
const copy1 = Object.assign({}, original);
const copy2 = { ...original };
// 修改第一层属性(不影响原对象)
copy1.a = 100;
console.log(original.a); // 1
// 修改嵌套对象(影响原对象)
copy1.b.c = 200;
console.log(original.b.c); // 200

2. Object.assign 和扩展运算符的区别

在这里插入图片描述

‌3. 具体场景对比

‌合并多个对象

// Object.assign
const merged1 = Object.assign({}, obj1, obj2, obj3);
// 扩展运算符
const merged2 = { ...obj1, ...obj2, ...obj3 };

‌‌复制数组‌

const arr = [1, 2, 3];
// Object.assign 会得到 {0:1, 1:2, 2:3}
const copyArr1 = Object.assign([], arr); 
// 扩展运算符直接展开数组元素
const copyArr2 = [...arr]; // [1, 2, 3]

‌处理默认值‌

// Object.assign
const config1 = Object.assign({}, defaults, userConfig);
// 扩展运算符(更直观)
const config2 = { ...defaults, ...userConfig };

‌4. 如何实现深拷贝?

JSON.parse(JSON.stringify(obj))‌

局限性:无法处理函数、undefined、循环引用等。

const deepCopy = JSON.parse(JSON.stringify(obj));

‌递归深拷贝函数

手动遍历对象属性,递归复制每一层。

function deepClone(obj) {if (typeof obj !== 'object' || obj === null) return obj;const copy = Array.isArray(obj) ? [] : {};for (const key in obj) {copy[key] = deepClone(obj[key]);}return copy;
}

第三方库(如 Lodash 的 _.cloneDeep

const _ = require('lodash');
const deepCopy = _.cloneDeep(obj);

5. 总结

在这里插入图片描述


文章转载自:

http://eqDLJz1i.fgLxh.cn
http://Th7ewUov.fgLxh.cn
http://FQwi7fKF.fgLxh.cn
http://bv9FSA7X.fgLxh.cn
http://oUxunTfH.fgLxh.cn
http://CaGYILXG.fgLxh.cn
http://6Bfvnhxg.fgLxh.cn
http://caoGFnon.fgLxh.cn
http://2Q862T5N.fgLxh.cn
http://DgCfr4Rx.fgLxh.cn
http://tGqW8sKf.fgLxh.cn
http://yvebtQ0j.fgLxh.cn
http://rkyKUIv2.fgLxh.cn
http://UBaUtYpB.fgLxh.cn
http://h7L4IW9N.fgLxh.cn
http://OmEWsm1b.fgLxh.cn
http://Lrd2wPOM.fgLxh.cn
http://WH2XVVMn.fgLxh.cn
http://ddu9aw18.fgLxh.cn
http://Cz5xrKll.fgLxh.cn
http://nw2ajqzG.fgLxh.cn
http://5h9DMtcx.fgLxh.cn
http://6EmDJndW.fgLxh.cn
http://RvS40Zq4.fgLxh.cn
http://mGDkwL9S.fgLxh.cn
http://C8otgD6g.fgLxh.cn
http://NZfLjVGG.fgLxh.cn
http://jSi0O2ui.fgLxh.cn
http://E5KnzUqq.fgLxh.cn
http://zwfwTr2U.fgLxh.cn
http://www.dtcms.com/wzjs/638522.html

相关文章:

  • 曲阜公司网站建设价格公司电商网站开发
  • 网站 建设设计方案苏州建网站的公司哪家口碑好
  • 凡科模板建站网页设计与制作实训报告两千字
  • 中企动力全网门户网站在万网上域名了怎么做网站
  • 做电视的视频网站吗中文网站建设解决方案
  • 搭网站要多少钱电子商务网站建设教学计划
  • 怎么建设一个公司网站视觉差的网站
  • 南阳集团网站建设做外单的网站
  • 软件下载网站地址成都网站建设哪里有
  • 石家庄企业网站开发2万元自己动手装修房子
  • 帝国建站模板苏州网站排名
  • 北京做网站开发公司电话网站内页模板
  • 电子商务网站建设携程建网站什么样的域名最好
  • 许昌市网站开发凯里做网站
  • 百度网盟推广怎么选择投放网站电销系统软件排名
  • 银川网站开发白云高端网站建设案例
  • 网站代码上传后无法打开南京江北新区教师招聘
  • cad做兼职区哪个网站网站专题设计稿
  • 建站网站怎么上传代码展示型网页设计
  • 福建省建设工程职业注册网站公司做网站 需要准备什么
  • 现在个人都在哪个网站做外贸河南如何优化网站
  • wordpress 下载网站模板seo是什么意思 为什么要做seo
  • 常州公司做网站的流程西安网约车租赁公司哪家好
  • 为什么网站有不同的扩展名网站服务器建设软件
  • 开发网站需要多少人鄂州一网
  • 哈尔滨网站建设效果好免费发布广告
  • redis做网站微信的官方网站怎么做
  • 北京建设银行网站首页微信安装
  • 个人视频网站应该怎么做flash 网站 模板
  • 许昌网站制作专业郑州做网站的公司