概念
克隆或者拷贝分为2种:浅度克隆(拷贝),深度克隆(拷贝);
- 浅度克隆:基本类型为值传递,对象仍为引用传递。
-
深度克隆:所有元素或属性均完全克隆,并于原引用类型完全独立,即,在后面修改对象的属性的时候,原对象不会被修改。
描述
function cloneObject(obj){ |
2 | var o = obj.constructor === Array ? [] : {}; |
3 | for ( var i in obj){ |
4 | if (obj.hasOwnProperty(i)){ |
5 | o[i] = typeof obj[i] === "object" ? cloneObject(obj[i]) : obj[i]; |
6 | } |
7 | } |
8 | return o; |
9 | } |