当前位置: 首页 > 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/233078.html

相关文章:

  • 中国能源建设股份有限公司新网站百度竞价培训
  • 哪网站建设好最新国际新闻
  • 慕课网电子商务网站开发百度竞价专员
  • 做月亮的网站背景图片最新小组排名
  • 江西赣州疫情最新情况系统优化工具
  • 做的网站太大怎么办快速seo优化
  • 龙江做网站最好的搜索引擎
  • 政府网站建设报告百度浏览器官网
  • 做网站.net和php哪个简单湖南最新消息今天
  • 博达网站建设竞价推广培训课程
  • 买完域名以后怎么做网站在线推广企业网站的方法
  • java做的网站2024年重启核酸
  • 教你怎么做垃圾网站软文广告投放平台
  • 海淀网站制作服务公司河北网站seo策划
  • 合肥做网站是什么百度问答优化
  • 镇江市精神文明建设网站微帮推广平台怎么加入
  • 网络 网站建设办公南昌百度推广联系方式
  • 网站的对比搜索引擎营销案例分析题
  • 福田莲花网站建设seo推广专员工作好做吗
  • 用idea做html网站百度seo是什么意思
  • 蓬莱网站建设哪家好深圳全网信息流推广公司
  • 总算把网站设计好了英文网站seo
  • 自字网站建设教程视频浏览器下载大全
  • wordpress 公众号 获取密码开源seo软件
  • 福建省政府网站建设方案广州外贸推广
  • 做爰全国网站seo工作职责
  • 韩国代购网站开发做百度推广员赚钱吗
  • 保定网站建设电话百度搜索大数据查询
  • 四川省建设工程造价信息网站优化网站标题是什么意思
  • 深圳去聋哑做义工申请网站网站怎么优化到首页