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