封装一个函数,判断参数是数组还是object
var arr = [11, 22, 33]
var obj = {};
var date = new Date()
function checkType(o) {
var arr = Object.prototype.toString.call(o).split(" ");
var str = arr[1];
return str.slice(0, str.length - 1);
}
在封装一个递归函数,实现深拷贝
function cloneDeep(params) {
//1.先判断是数组还是对象,再创建新的数组or对象
var temp = Array.isArray(params) ? [] : {};
for (let key in params) {
if (typeof params[key] == "object") {
temp[key] = cloneDeep(params[key])
} else {
temp[key] = params[key]
}
}
return temp;
}
var obj = { name: "刘德华", list: [11, 22, 33], show() { } }
var obj1 = cloneDeep(obj);
obj.name = "吴彦祖"
obj.list[0] = "陈冠希"