1. 淺層的數組或對象拷貝(也就是數組中不包含對象或數組)
****1.1 通過slice或者concat方法****
例如:數組2復制數組1
var arr2 = arr1.slice(0);
var arr2 = arr1.concat();
****1.2 遍歷數組或對象方法****
var simpleCopy = function(o){
if (o instanceof Array)
{
var n = [];
for (var i = 0; i < o.length; ++i)
n[i] = o[i];
return n;
}
else if (o instanceof Object)
{
var n = {} ;
for (var i in o)
n[i] = o[i];
return n;
}
}
2. 實現拷貝包含對象或者數組的這種情況呢?那么就通過遞歸拷貝來實現。
var deepCopy = function(o) {
if (o instanceof Array)
{
var n = [];
for (var i = 0; i < o.length; ++i)
n[i] = deepCopy(o[i]);
return n;
}
else if (o instanceof Object)
{
var n = {} ;
for (var i in o)
n[i] = deepCopy(o[i]);
return n;
}
else return o;
}