源码及应用:
function merge(first , second) {
var i = first.length;
var len = i + second.length;
var j = 0;
for(; i < len; i++){
first[i] = second[j++];
}
first.length = len;
return first;
}
var arr = [1,2,3,4,{test: 1}];
var larr = {
0: 1,
1: 2,
2: 3,
test: function () {
console.log(111);
},
length: 3
};
// console.log(merge(arr,larr));
// [1,2,3,1,2,3];
console.log(merge(larr,arr));
// larr = {
// 0: 1,
// 1: 2,
// 2: 3,
// 3: 1,
// 4: 2,
// 5: 3,
// 6: 4,
// test: function...
// length: 7
// }
浅度克隆,若克隆体内存在引用值,改变克隆体则会改变被克隆的对象; 如改变 arr[4].test 会改变 larr;