function shallowClone(sourceObj) { //浅拷贝
// 先判断传入的是否为对象类型
if (!sourceObj || typeof sourceObj !== 'object') {
console.log('您传入的不是对象!!')
}
// 判断传入的 Obj是类型,然后给予对应的赋值
var targetObj = sourceObj.constructor === Array ? [] : {};
// 遍历所有 key
for (var keys in sourceObj) {
// 判断所有属于自身原型链上的 key,而非继承(上游 )那些
if (sourceObj.hasOwnProperty(keys)) {
// 一一复制过来
targetObj[keys] = sourceObj[keys];
}
}
return targetObj;
}
var deepClone = function(sourceObj) {//深拷贝
if (!sourceObj || typeof sourceObj !== 'object') {
console.log('您传入的不是对象!!');
return;
}
// 转->解析->返回一步到位
return window.JSON
? JSON.parse(JSON.stringify(sourceObj)) //先转换为字符串再转为json
: console.log('您的浏览器不支持 JSON API');
};