对浅拷贝和深拷贝的理解
2018-08-17 09:43:22来源:博客园 阅读 ()
浅复制 —-只是拷贝了基本类型的数据,而引用类型数据,复制后也是会发生引用,我们把这种拷贝叫做“(浅复制)浅拷贝”,换句话说,浅复制仅仅是指向被复制的内存地址,如果原地址中对象被改变了,那么浅复制出来的对象也会相应改变。
深复制 —-在计算机中开辟了一块新的内存地址用于存放复制的对象。
浅拷贝实例:
//此递归方法不包含数组对象
var obj = {a:1, arr[2,3]};
var shallowObj = shallowCopy(obj);
function shallowCopy(src){
var newobj = {};
for(var prop in src)
{if(src.hasOwnProperty(prop))
{newobj[prop] = src[prop];}}
return newobj;
}
深拷贝实例:
var obj = {a:1,
arr[2,3],
nation:'中国',
birthplace:['北京','上海'],
};
var obj2 = {name:'杨'};
obj2 = deepCopy(obj,obj2);
console.log(obj2);
//深复制,需要达到深复制就需要用到递归
function deepCopy(o,c){
var c = c||{};
for(var i in o){
if(typeof o[i]==='object'){//要考虑深复制的问题了
if(o[i].constructor===Array){//这是数组
c[i] = [];
}else{//这是对象
c[i] = {};
}
deepCopy(o[i], c[i]);
}else{
c[i] = o[i];
}
}
return c;
}
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:node:爬虫爬取网页图片
- 深入理解JavaScript是如何实现继承的 2020-02-25
- Javascript 复制数组的实现代码 2019-10-12
- js工厂函数创建对象与对象构造函数的理解 2019-08-14
- JS变量、作用域 2019-08-14
- call,apply,bind的理解 2019-08-14
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash