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

南通工程建设信息网站环球网最新消息

南通工程建设信息网站,环球网最新消息,销售产品单页面网站,代卖平台哪个好在 JavaScript 中,Object.assign() 和扩展运算符(...)都是浅拷贝(Shallow Copy)。它们只复制对象的第一层属性,不会递归复制嵌套的对象。 一、浅拷贝的特征: 第一层属性是值复制(基…

在 JavaScript 中,Object.assign() 和扩展运算符(...)都是浅拷贝(Shallow Copy)。它们只复制对象的第一层属性,不会递归复制嵌套的对象。

一、浅拷贝的特征:

  1. 第一层属性是值复制(基本类型直接复制值,引用类型复制地址引用)
  2. 嵌套对象是引用共享(修改嵌套对象会影响原对象)

二、验证示例:

const obj = {name: "John",address: { city: "New York" }
};// 使用 Object.assign
const copy1 = Object.assign({}, obj);
// 使用扩展运算符
const copy2 = { ... obj };// 修改第一层属性(互不影响)
copy1.name = "Alice";
console.log(obj.name);       // "John" (不变)// 修改嵌套对象(会相互影响)
copy1.address.city = "London";
console.log(obj.address.city); // "London" (原对象被修改)

三、Object.assign 和扩展运算符的区别:

特性Object.assign()扩展运算符 ...
基本功能合并对象到目标对象展开对象/数组的属性
原型链属性不复制原型链上的属性不复制原型链上的属性
Symbol 属性可以复制可以复制
属性覆盖顺序后传入的覆盖同名属性后展开的覆盖同名属性
数组合并不支持支持([...arr1, ...arr2]
空值处理忽略 null/undefined 源对象抛出错误
函数调用方式Object.assign(target, ...sources)字面量内部 { ...obj }

四、深拷贝的解决方案

如果需要完全独立的副本,需使用深拷贝:

  1. 手动递归克隆
  2. JSON.parse(JSON.stringify(obj))
    (注意:会丢失函数/Symbol/undefined 等)
  3. 三方库
    如 Lodash 的 _.cloneDeep(obj)

五、关键总结

  • 两者都是浅拷贝:只复制第一层,嵌套对象共享引用
  • 🚫 不是深拷贝:无法创建嵌套对象的独立副本
  • 📌 优先使用扩展运算符(语法更简洁,是 JS 标准)
  • ⚠️ 嵌套对象需要额外处理才能实现深拷贝
http://www.dtcms.com/wzjs/160154.html

相关文章:

  • 唐山网站建设外包公司哪家好数据分析师培训机构
  • 网页前端开发框架seo关键词怎么优化
  • 千龙网站建设3000块钱在朋友圈投放广告
  • 有哪些好的做网站软件怎么推广
  • wordpress 网站建设中天津百度推广公司地址
  • 深圳网页制作推广哪家好搜索引擎优化的简写是
  • 做的最好的宠物网站成都网络营销公司哪家好
  • 如何用华为云服务器做网站网络营销的公司有哪些
  • 网站实时K线怎么做怎样制作网页设计
  • 百度地图导航客服seo推广教程seo推广技巧
  • 做网站赚钱缴税吗郑州seo代理外包公司
  • 网站备案查询长春网站开发
  • 创意福州网站建设中国最新领导班子
  • 网站代码下载猪八戒网接单平台
  • 高端网站建设公司兴田德润可以不软文营销经典案例
  • 河东做网站seo培训班
  • 德阳网站制作推广页面制作
  • 无锡做网站设计的公司刚刚突发1惊天大事
  • 南安seo教程泰州seo外包公司
  • 北海公司做网站seo推广的网站和平台有哪些
  • 实实通信的视频网站怎么做网站搜索引擎优化案例
  • 如何做能上传视频网站自媒体引流推广
  • 国内阿里巴巴网站怎么做合肥网站优化推广方案
  • 网站公司排行榜最近一周的重大新闻
  • 做网站需要用到的软件杭州营销策划公司排名
  • 前程无忧做简历网站网络运营策划
  • 怎么查网站的备案信息微信推广软件有哪些
  • wordpress公司主题网站优化推广排名
  • 伊犁北京网站建设磁力链
  • 王烨桦湖南seo公司