js的深拷贝和浅拷贝
来源:互联网 发布:阿里云域名访问网站 编辑:程序博客网 时间:2024/05/25 19:56
浅拷贝是只复制一层对象属性,是对地址的复制,即复制的两个对象指向同一块地址。
深拷贝是复制所有层对象属性,是对指针的复制,即开辟出一块新的内存地址,将元对象的各个属性逐个复制过去。
浅拷贝代码:
var obj1 = {
a:{b:10}
}
function shallowCopy (obj){
var dst = {};
for(var prop in obj){
if(obj.hasOwnProperty(prop)){
dst[prop] = obj[prop];
}
}
return dst;
}
var obj2 = shallowCopy(obj1);
深拷贝代码:
function deepCopy(obj){
var newObj = {};
if(typeof obj != 'object'){
return obj;
}
for(var attr in obj){
newObj[attr] = deepCopy(obj[attr]);
}
return newObj;
}
var obj3 = deepCopy(obj1);
注:js的深拷贝比较复杂,使用场景不同,变化众多,本文只做简单的代码说明,如有任何问题,可在下方评论区提出,谢谢!
阅读全文
0 0
- js的深拷贝和浅拷贝
- js中的浅拷贝和深拷贝
- js深拷贝和浅拷贝
- js深拷贝和浅拷贝
- js深拷贝和浅拷贝
- js深拷贝和浅拷贝
- js深拷贝和浅拷贝
- Js实现深拷贝和浅拷贝
- js深拷贝和浅拷贝
- JS浅拷贝和深拷贝
- js深拷贝和浅拷贝
- js中深拷贝和浅拷贝
- js深拷贝和浅拷贝
- js 对象浅拷贝和深拷贝
- js深拷贝和浅拷贝
- js深拷贝和浅拷贝
- JS浅拷贝和深拷贝详解
- js中的深拷贝和浅拷贝
- 关于ubuntu16.04编译2进制文件时,出现“加载共享库时出错”错误的解决
- oracle--13.管理
- Mobx 的一些基本概念
- Mysql--其他用法
- python爬虫解决网页重定向问题
- js的深拷贝和浅拷贝
- 修改android N 的Launcher3桌面显示的行数列数
- 架构与内核
- python之socket
- 内嵌汇编
- linux 查看所有打开so档的进程
- 人群密度估计--Learning a perspective-embedded deconvolution network for crowd counting
- vue爬坑——vee-validate的使用
- reading 《effective c++》