Javascript浅拷贝与深拷贝
时间:2010年08月08日作者:愚人码头查看次数:5,122 views评论次数:4
js中的赋值都为引用传递.就是说,在把一个对像赋值给一个变量时,那么这个变量所指向的仍就是原来对像的地址.引用就是浅拷贝。
深拷贝就是不紧复制对象的基本类,同时也复制原对象中的对象.就是说完全是新对象产生的,新对象所指向的不是原来对像的地址。
Javascript深拷贝有很多封装的方法,大家网上可以搜索一下.看下面这个例子:
var S=KISSY,
obj={a:"a",b:"b"};
var newObj=S.clone(obj);//深拷贝
var newObj1=obj;//浅拷贝,赋值
obj.b="b2";
S.log(obj);//{a:"a",b:"b2"}
S.log(newObj);//{a:"a",b:"b"}
S.log(newObj1)//{a:"a",b:"b2"}
声明: 本文采用 BY-NC-SA 协议进行授权 | WEB前端开发
转载请注明转自《Javascript浅拷贝与深拷贝》
如果你读了我的文章,觉得有帮助:
说明
发表评论



呃, 原来只是介绍 KISSY 封装的 clone 函数
我的 blog 里面有 native js 写的 deep copy
[回复]
恩,做过java等语言的,看这个还是很好理解的。也就是克隆对象。
[回复]
博主的编辑器用的是什么字体,看着很舒服,能共享吗?
[回复]