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浅拷贝与深拷贝

如果你读了我的文章,觉得有帮助: 说明
标签:分类:JS
3条评论
  1. Chris留言于:2010年08月09日11:04

    呃, 原来只是介绍 KISSY 封装的 clone 函数
    我的 blog 里面有 native js 写的 deep copy

    [回复]

  2. ToFishes留言于:2010年08月23日15:47

    恩,做过java等语言的,看这个还是很好理解的。也就是克隆对象。

    [回复]

  3. 哈哈留言于:2010年09月18日11:05

    博主的编辑器用的是什么字体,看着很舒服,能共享吗?

    [回复]

发表评论

*

*