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);

总结:

最新文章

  1. zeroclipboard浏览器复制插件使用记录
  2. Dev GridView行拖拽
  3. 使用Pip安装distribute、nose、virtualenv
  4. MySQL查询分析器EXPLAIN或DESC
  5. kvm虚拟化平台搭建入门
  6. steps animation
  7. Click Models for Web Search(1) - Basic Click Models
  8. .NET设计模式系列文章 from TerryLee
  9. shell 流程控制
  10. pods 这两篇就够了
  11. NGUI_概述
  12. iOS enum 定义与使用
  13. Java反射定义、获取Class三种方法
  14. Python全栈开发之路 【第四篇】:Python基础之函数
  15. .net DataTable序列化成Json
  16. 使用X.509数字证书加密解密实务(一)-- 证书的获得和管理
  17. 前端html
  18. css 纸张效果 666
  19. 在Windows下编译Emacs
  20. cocos2dx游戏--欢欢英雄传说--添加血条

热门文章

  1. lightoj 1119 - Pimp My Ride(状压dp)
  2. Gym 101470 题解
  3. CQ18阶梯赛第二场
  4. HDU 5793 A Boring Question 多校训练
  5. 用深度学习技术FCN自动生成口红
  6. WebStorm调节控制台字体
  7. JS数组方法整理(附使用示例)
  8. 【编程之美】用C语言实现状态机(实用)
  9. #umn 来美国近一个月的简单见闻
  10. centos开启nginx服务成功,却无法访问。没有开启80端口。centos配置防火墙 开启80端口