IT技术博客大学习 共学习 共进步

Javascript浅拷贝与深拷贝

WEB前端开发 2010-08-08 23:53:50 累计浏览 1,565 次

    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"}