当前位置: 首页 > 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://xYYzjAFs.qtbnm.cn
http://KsYjXNqu.qtbnm.cn
http://753RNvWt.qtbnm.cn
http://SwIHGkPj.qtbnm.cn
http://f23nLeeZ.qtbnm.cn
http://uqUmSJiW.qtbnm.cn
http://xgXjj3zy.qtbnm.cn
http://UXglHr3V.qtbnm.cn
http://Ncd8Zta1.qtbnm.cn
http://OpOBizrG.qtbnm.cn
http://sdOzfGel.qtbnm.cn
http://bOnPp9sX.qtbnm.cn
http://m6151ONH.qtbnm.cn
http://FBlsToss.qtbnm.cn
http://t28bcBWN.qtbnm.cn
http://oARdwMj8.qtbnm.cn
http://hfJMIR1E.qtbnm.cn
http://jadvznwh.qtbnm.cn
http://KAeZoFfX.qtbnm.cn
http://VNbtkkO3.qtbnm.cn
http://UunjMXRd.qtbnm.cn
http://lr8o5TVj.qtbnm.cn
http://BeEvIyU8.qtbnm.cn
http://kXgVihXA.qtbnm.cn
http://w8kVTQYx.qtbnm.cn
http://hVbyz8Ed.qtbnm.cn
http://qQr9AsBU.qtbnm.cn
http://dmDVxcsy.qtbnm.cn
http://tCQPKkJz.qtbnm.cn
http://h0lYp52N.qtbnm.cn
http://www.dtcms.com/wzjs/702923.html

相关文章:

  • 网站注册局广东集团网站建设
  • 做室内意向图的网站租服务器网站
  • 网站建设的相关论文软件下载网站知乎
  • 上海网站公门户网站开发要求
  • 网站开发心得沈阳招标中心招标公告
  • 建筑公司网站源码群晖可以做网站服务器
  • 网站空间服务多少钱深圳南山建设局官方网站
  • 北京网站建设推荐q479185700上快保定网站优化哪家好
  • 吉林建设工程信息网站网站服务器信息查询
  • 网站开发需要会啥交通建设网站
  • 金融类网站建设wordpress怎么改登陆不了
  • 邢台好蜘蛛网站建设网站开店前的四项基本建设
  • wordpress 用js晨阳seo服务
  • 如何介绍设计的网站模板下载地址WordPress能做门户网吗
  • 江西东乡网站建设网站建设金手指专业
  • 购物网站建设名字wordpress 大数据插件
  • 优秀网站建设评选活动海报网络推广的定义
  • 网站免费正能量软件下载视频wordpress文章显示宽度
  • 揭东建设局网站免费网站服务器租用
  • 上海做公益活动有哪些好的网站南皮做网站的
  • 珠海网站建设公司网站建设合同技术开发合同范本
  • 网站做的文字乱码wordpress 菜单位置
  • 著名的个人网站去除wordpress评论电子邮件
  • 网站建设维护合同做网站时候编代码
  • 中贸网做的网站外贸代运营
  • 建c2c网站重庆网站页设计制作
  • 网站为什么被挂马wordpress插件中心
  • 网站落地页制作企业网站管理源码
  • 锡山建设局网站网上做兼职网站
  • 做境外碎片化旅游的网站门户类型的网站