浅拷贝&深拷贝的对比
2024-10-04 10:08:41
js中两种数据类型
浅拷贝:拷贝就是拷贝指向对象的指针,意思就是说:拷贝出来的目标对象的指针和源对象的指针指向的内存空间是同一块空间,浅拷贝只是一种简单的拷贝,让几个对象公用一个内存,然而当内存销毁的时候,指向这个内存空间的所有指针需要重新定义,不然会造成野指针错误。——百度百科
var obj1 = {
name:"柯南",
sex:"男",
friends:["灰原","步美","光彦","元太"]
}
var obj2 = {};
function shallowCopy(x,y){
for(var key in x){
y[key] = x[key];
}
}
shallowCopy(obj1,obj2);
console.log(obj1);
console.log(obj2);
深拷贝:深拷贝是指源对象与拷贝对象互相独立,其中任何一个对象的改动都不会对另外一个对象造成影响。——百度百科
var obj1 = {
name:"柯南",
sex:"男",
friends:["灰原","步美","光彦","元太"]
}
var obj2 = {};
function deepCopy(x,y){
for(var key in x){
var item = x[key];
if(item instanceof Array){
y[key] = [];
deepCopy(item,y[key]);
}else if(item instanceof Object){
y[key]=[];
deepCopy(item,y[key]);
}else{
y[key]=item;
}
}
}
deepCopy(obj1,obj2);
console.log(obj1);
console.log(obj2);
总结:
最新文章
- zeroclipboard浏览器复制插件使用记录
- Dev GridView行拖拽
- 使用Pip安装distribute、nose、virtualenv
- MySQL查询分析器EXPLAIN或DESC
- kvm虚拟化平台搭建入门
- steps animation
- Click Models for Web Search(1) - Basic Click Models
- .NET设计模式系列文章 from TerryLee
- shell 流程控制
- pods 这两篇就够了
- NGUI_概述
- iOS enum 定义与使用
- Java反射定义、获取Class三种方法
- Python全栈开发之路 【第四篇】:Python基础之函数
- .net DataTable序列化成Json
- 使用X.509数字证书加密解密实务(一)-- 证书的获得和管理
- 前端html
- css 纸张效果 666
- 在Windows下编译Emacs
- cocos2dx游戏--欢欢英雄传说--添加血条