一直在尝试为javascript找一个快捷可靠的对象深拷贝的方法,昨天突发奇想,把对象push到一个空数组里,然后对改数组通过concat()或slice()进行拷贝,然后取出数组的第一个元素复制给变量,这个变量岂不就是深拷贝的对象么。说干就干,上代码

    var a = {
b: {
c: 1
}
};
var arr = [];
arr.push(a);
var x = arr.slice(0);
arr[0].b = 12;
console.log(x[0].b);

  若成功的话,控制台里是对象{c: 1},否则是12。

  失败了,看样子数组的concat、slice()等方法并不会对原数组进行深拷贝,只是浅复制了一层,内部的元素若为对象,仍是堆地址引用。

  若要对对象进行深拷贝,还是要用jquery的extend方法,要不就用json吧,尽管json会有问题,可以参考这篇文章

最新文章

  1. android 项目中出现红色感叹号的解决方法
  2. LeetCode - 51. N-Queens
  3. java中堆栈(stack)和堆(heap)(还在问静态变量放哪里,局部变量放哪里,静态区在哪里.....进来)
  4. Linux平台卸载MySQL总结【转】
  5. 【crunch bang】安装firefox,删除iceweasel
  6. vsftp 用无法登陆的用户名登陆(也叫虚拟用户)并进入到自己的文件夹test
  7. JavaWeb 4 XML
  8. Zabbix实现告警分级
  9. Domj4读取xml文件
  10. 【8】JAVA---地址App小软件(AddrDaoFile .class)(数据层)
  11. WebDriver(Selenium2) 判断页面是否刷新的方法
  12. CoordinatorLayout学习笔记
  13. 第二章:JavaScript对象
  14. 探索Gallery和ImageSwitcher布局
  15. 201521123030 《Java程序设计》第7周学习总结
  16. enum与typedef enum
  17. boost中bind的使用
  18. SQL Server 锁实验(SELECT加锁探究)
  19. 实战ELK(7)ElasticSearch常用的基本查询语句
  20. 洛谷P4197 Peaks(Kruskal重构树 主席树)

热门文章

  1. css函数——calc()和attr()
  2. POJ 2386 Lake Counting DFS水水
  3. python 字符串大小写转换(不能使用swapcase()方法)
  4. 全双工 串口 stm32
  5. 6.1、Android硬件访问服务之框架
  6. Android中Activity切换时共享视图元素的切换动画(5.0以上)
  7. MapReduce 图解流程
  8. Android隐藏输入法
  9. Tidhy
  10. jquery-11 留言板如何实现