javascript 对象的深浅拷贝
2017-11-20 22:00
651 查看
主要是在浏览器控制台执行的,主要看截图吧
一、浅拷贝
1.=
2.Object.assign
虽然Object.assign返回的是一个新的对象,但是在数据拷贝的过程中,如果某个key对应的value是引用类型的对象,那么Object.assign只会拷贝数据的引用,所以Object.assign其实是浅拷贝。
3.扩展运算符
行为和Object.assign类似
4.jQuery.extend
二、深拷贝
1.JSON.stringfy()和JSON.parse()
2.jQuery.extend
一、浅拷贝
1.=
var obj = {"name":"张三","age":15}; var obj1 = obj; obj === obj1 obj.age = 18;
2.Object.assign
var obj = {"name":"张三","age":15,"sex":{"ad":"男"}}; var obj1 = {}; Object.assign(obj1,obj); obj.name = "李四";obj.sex.ad="女";
虽然Object.assign返回的是一个新的对象,但是在数据拷贝的过程中,如果某个key对应的value是引用类型的对象,那么Object.assign只会拷贝数据的引用,所以Object.assign其实是浅拷贝。
3.扩展运算符
行为和Object.assign类似
var obj = {"name":"张三",age:{"sex":"男"}}; var {...obj1}=obj; obj.name="李四"; obj.age.sex="女";
4.jQuery.extend
var newObject = jQuery.extend({}, oldObject);
二、深拷贝
1.JSON.stringfy()和JSON.parse()
var obj = {"name":"张三",age:{"sex":"男"}}; var obj1 = JSON.parse(JSON.stringify(obj)); obj.name = "李四"; obj.age.sex = "女";
2.jQuery.extend
var newObject = jQuery.extend(true, {}, oldObject);
相关文章推荐
- javascript中对象的深浅拷贝
- Javascript 对象复制(深浅拷贝)
- 【自】javascript对象的深浅拷贝浅析
- 超实用的JavaScript代码段 Item8 -- js对象的(深)拷贝
- JavaScript面向对象编程(10)快速构建继承关系之对象拷贝
- JSON 实现 Javascript 对象深拷贝 clone
- 也说Javascript对象拷贝及疑问
- python对象的深浅拷贝
- JavaScript 对象拷贝研究
- javascript 数组以及对象的深拷贝(复制数组或复制对象)的方法
- javascript 数组以及对象的深拷贝的方法
- JavaScript 对象拷贝与Object.assign
- javascript拷贝创建对象
- Javascript对象拷贝(clone)
- 也来玩玩 javascript对象深拷贝,浅拷贝
- 详解js中对象的深浅拷贝
- javascript深浅拷贝
- javascript关于对象深拷贝和数组去重的问题...
- javascript 数组的深浅拷贝
- JavaScript对象的深浅复制