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

兰州做网站一咨询兰州做网站公司磁力链接搜索引擎2021

兰州做网站一咨询兰州做网站公司,磁力链接搜索引擎2021,做网站建设个体经营小微企业,eclips怎么做网站一、什么是拷贝?什么是深拷贝和浅拷贝? (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/417448.html

相关文章:

  • python网站开发优化外包服务公司
  • 襄阳营销型网站建设关键词seo
  • 易思网站管理系统收费模板式自助建站
  • 做网站和做微信小程序十大基本营销方式
  • 高端商品网站西安百度框架户
  • o2o是指的是什么网站内部链接优化方法
  • 原创文字的网站沈阳专业seo关键词优化
  • b2c网站的主要功能西安整站优化
  • 业网站建设北京疫情最新消息情况
  • 前端做网站如何调接口结构优化设计
  • 国企网站建设合同百度推广费
  • 营销网站制作活动策划方案
  • seo关键词优化公司推荐seo的理解
  • 网站开发合同模版奶茶的营销推广软文
  • 深圳网站设计公司wx成都柚米科技15线上营销推广方法
  • 跟做竞价的网站友情链接有用吗培训机构招生7个方法
  • 钓鱼网站盗号下载企业网址搭建
  • 免费软件制作网站关键字挖掘爱站网
  • vb.net可以做网站么深圳网站页面设计
  • 重庆巴南网站制作网络科技公司经营范围
  • 网站开发质量管理四川seo哪里有
  • 自己做网站卖视频石家庄百度快照优化
  • 新闻网站模板html网站seo公司
  • 文山北京网站建设seo网络营销
  • 有没有专门做橱窗的案例网站网络推广的渠道有哪些
  • 怎么找人做淘宝网站吗深圳网络推广怎么做
  • android 移动网站开发最牛餐饮营销手段
  • 交友网站建设策划方案(2)百度关键词排名软件
  • 程序员做网站给女朋友海南seo顾问服务
  • 文章类型的网站模版推广app网站