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

武汉今天特大新闻长春做网络优化的公司

武汉今天特大新闻,长春做网络优化的公司,公明网站建设,东莞设计网站企业一、什么是拷贝?什么是深拷贝和浅拷贝? (1)拷贝:拷贝就是为了复用原对象的部分or全部数据,在原对象的基础上通过复制的方式创建一个新的对象。 拷贝对象可以分为三种类型:直接赋值、浅拷贝和深拷…

一、什么是拷贝?什么是深拷贝和浅拷贝?

(1)拷贝:拷贝就是为了复用原对象的部分or全部数据,在原对象的基础上通过复制的方式创建一个新的对象。

拷贝对象可以分为三种类型:直接赋值、浅拷贝和深拷贝

 (2)直接赋值:并不会创建一个新的对象,而是将原对象的引用赋给新变量。因此,修改新变量会影响到原对象。

let obj1 = { name: "Alice", age: 25 };
let obj2 = obj1;obj2.age = 30;
console.log(obj1); // { name: "Alice", age: 30 }
console.log(obj2); // { name: "Alice", age: 30 }

(3)浅拷贝浅拷贝会创建一个新的对象,仅复制对象的第一层属性。如果是简单数据类型拷贝值,引用数据类型(eg:对象、数组)拷贝的是地址。 如果是单层对象,没问题,如果有多层就有问题,修改嵌套对象会影响原对象。

 

(4)深拷贝会创建一个新的对象,并且递归地拷贝所有嵌套对象,使得新对象与原对象完全独立。

        (深拷贝会开辟新的栈,两个对象对应两个不同的地址,修改对象A的属性,并不会影响到对象B。)

 

二、浅拷贝实现方法

        浅拷贝会创建一个新的对象,但新对象中的属性如果是对象,则这些属性仍然指向原对象中的对应属性。因此,修改嵌套对象会影响到原对象。

1、Object.assign() 

let obj1 = { name: "Alice", age: 25, address: { city: "New York" } };
let obj2 = Object.assign({}, obj1);obj2.age = 30;
obj2.address.city = "London";console.log(obj1); // { name: "Alice", age: 25, address: { city: "London" } }
console.log(obj2); // { name: "Alice", age: 30, address: { city: "London" } }

2、使用展开运算符(...)实现 

let obj1 = { name: "Alice", age: 25, address: { city: "New York" } };
let obj2 = { ...obj1 };obj2.age = 30;
obj2.address.city = "London";console.log(obj1); // { name: "Alice", age: 25, address: { city: "London" } }
console.log(obj2); // { name: "Alice", age: 30, address: { city: "London" } }

三、深拷贝实现方法

        深拷贝会创建一个新的对象,并且递归地拷贝所有嵌套对象,使得新对象与原对象完全独立。

1、通过递归实现深拷贝

如果一个函数在内部可以调用其本身,那么这个函数就是递归函数

2、使用 JSON.parse 和 JSON.stringify 实现 

let obj1 = { name: "Alice", age: 25, address: { city: "New York" } };
let obj2 = JSON.parse(JSON.stringify(obj1));obj2.age = 30;
obj2.address.city = "London";console.log(obj1); // { name: "Alice", age: 25, address: { city: "New York" } }
console.log(obj2); // { name: "Alice", age: 30, address: { city: "London" } }

3、js库lodash里面cloneDeep内部实现了深拷贝 

import _ from 'lodash';
let obj = { a: 1, b: [2, 3] };
let copy = _.cloneDeep(obj);

http://www.dtcms.com/wzjs/52169.html

相关文章:

  • 定制类网站建设什么叫友情链接
  • php网站 关键技术企业网站营销的典型案例
  • 怎样做赌博网站优化落实防控措施
  • 北京网络营销咨询公司企业网站排名优化公司
  • 我想给别人做网站百度经验官网
  • 网站建设服务费属于什么费用百度秒收录蜘蛛池
  • 做爰全过程免费的教网站网站如何发布
  • 网站系统开发流程中山360推广
  • 网站建设招标信息网络推广项目代理
  • 合肥网站建设电话独立站
  • 政府网站域名要求100个关键词
  • 17种新型商业模式如何优化网页
  • jsp 网站开发例子seo网络推广专员招聘
  • 自己怎么做交易网站百度灰色词优化排名
  • 小县城 交友网站 很难做东莞推广平台有哪些
  • 怎么建立自己的站点推广形式
  • 网站联系我们的地图怎么做网络热词2023流行语及解释
  • 公司做网站济南福州排名seo公司
  • 在什么网站可以做硬件项目成都网站排名 生客seo
  • 本溪网站建设网站建设包括哪些内容
  • 手机英语网站seo辅助优化工具
  • 台州网站制作开发新闻投稿平台有哪些
  • 网站建设与管理专业是什么营销策划方案ppt模板
  • 做站群一个网站多少钱win优化大师
  • 上门做网站公司石家庄关键词快速排名
  • 新手学做网站的书网络优化工程师前景
  • 2018做网站还是appseo资料
  • 中国品牌网站官网seo外包资讯
  • 网站改版升级总结百度竞价一个月5000够吗
  • 武汉城市建设学院招生网站自然搜索优化