js浅copy和深copy
来源:互联网 发布:ant windows 64位下载 编辑:程序博客网 时间:2024/05/30 04:30
var arr1 = ['a', 'b', 'c'];var arr2 = arr1;arr2[0] = 'a2';alert(arr1[0])
arr2和arr1的内容是一样的,但是arr2的内容一旦改变,也会影响arr1的内容,因为arr1和arr2是指向同一块内存。这叫做浅copy。
js的深copy可以通过Array的slice方法实现。
var arr1 = ['a', 'b', 'c'];var arr2 = arr1.slice(0);arr2[0] = 'a2';alert(arr1[0]);
对象同样有深浅两种copy,浅copy一样,深copy可以通过jQuery的extend方法实现。
var obj1 = {a: 'aa', b: 'bb'};var obj2 = $.extend({}, obj1);obj2.a = 'a2';alert(obj1.a);
那么,array中包含对象会怎么样呢?今天我就遇到这样一个坑。
var arr1 = [{a1: 'a1', a2: 'a2'}, {b1: 'b1', b2: 'b2'}];var arr2 = arr1.slice(0);arr2[0] = 'a', arr2[1].b1 = 'bb';alert(arr1[0]);alert(arr1[1].b1);
arr1和arr2确实是两个数组,但它们里面的对象实际上还是共享同一块内存。我暂时没想到方便的方法,只好遍历数组一个个复制里面的对象。
0 0
- js浅copy和深copy
- 深copy和浅copy
- 深copy和浅copy
- OC 中 浅 copy 和 深 copy
- OC的深Copy和浅Copy
- python 深copy和浅copy
- python 浅copy 和 深copy
- 深copy,浅copy
- 深copy 以及浅copy
- iOS 深copy 浅copy
- ios 深copy 浅copy
- 浅拷贝和深拷贝(shallow copy VS deep copy )
- 浅拷贝、深拷贝 Bitwise Copy和Memberwise Copy
- 深拷贝、浅拷贝、memberwise copy 和 bitwise copy
- 浅拷贝、深拷贝以及Memberwise Copy 和 Bitwise Copy
- 浅拷贝、深拷贝 Bitwise Copy和Memberwise Copy
- 结构体的浅copy和深copy
- Java中类的引用Copy,浅Copy和深Copy
- HTML5下DOM元素在窗口中拖动(更改位置)
- Java杨辉三角的打印
- 正则表达式学习笔记
- Android的OnTouch事件的处理机制
- GTest使用
- js浅copy和深copy
- 完成用户列表Demo,使用plist当数据源,在TableView中显示plist的内容
- 微信营销最重要的环节大部分人都忽略了
- 食物链
- Android 5.0 源码分析 Handler Looper MessageQueue 底层原理
- Django1.9学习笔记
- iOS打包ipa安装包的流程
- SpringMVC入门 -- WebMVC简介
- 51单片机DS1302实时时钟驱动程序