js对象的浅拷贝和深拷贝


前端

零度逍遥

2015-10-30 15:24:57

在实际开发中,我们经常用到js对象,而有时我们需要复制一个对象,js中复制一个对象分为浅拷贝和深拷贝两种。

浅拷贝是直接复制源对象的属性和方法。

深拷贝是在浅拷贝的基础上,如果源对象属性也是一个对象,那么连这个对象也复制,也就是在内存中又开辟了一块地方用来存放。

下面是浅拷贝的代码示例:

function extend (a, b){ //a为目标的对象名,b为源对象名
for(var i in b){ 
    a[i] = b[i]
}
    return a;
}
深拷贝的代码暂时没写出来,有兴趣的可以去看一下JQ的源码,里面有相应的代码$.extends。