const obj = {
num: 1,
str: 'a',
bol: true,
key1: null,
key2: undefined,
func: function () {console.log('45sss')},
arr: [
1,
'a',
true,
null,
undefined,
function () {},
[],
{},
],
obj: {
num: 2,
str: 'a',
bol: true,
key1: null,
key2: undefined,
func: function () {},
arr: [],
obj: {}
}
};
const arr = [
1,
'a',
true,
null,
undefined,
() => {console.log('45sss')},
[
1,
'a',
true,
null,
undefined,
function () {},
[],
{},
],
{
num: 1,
str: 'a',
bol: true,
key1: null,
key2: undefined,
func: function () {},
arr: [],
obj: {}
}
];
console.log('*************** 数组深拷贝测试 ***************');
const arr2 = clone(arr);
arr2[0] = 10;
console.log('arr', arr);
console.log('arr2', arr2);
console.log('*************** 数组浅拷贝测试 ***************');
const arr3 = arr;
arr3[0] = 20;
console.log('arr', arr);
console.log('arr3', arr3);
console.log('*************** 对象深拷贝测试 ***************');
const obj2 = clone(obj);
obj2.num = 10;
console.log('obj', obj);
console.log('obj2', obj2);
console.log('*************** 对象浅拷贝测试 ***************');
const obj3 = obj;
obj3.num = 20;
console.log('obj', obj);
console.log('obj3', obj3);