深拷贝对象
deepClone(obj) {
const isObject = function(obj) {
return typeof obj == 'object';
}
if (!isObject(obj)) {
throw new Error('obj 不是一个对象!')
}
let isArray = Array.isArray(obj)
let cloneObj = isArray ? [] : {};
for (let key in obj) {
cloneObj[key] = isObject(obj[key]) ? this.deepClone(obj[key]) : obj[key]
}
return cloneObj
},
demo
let obj1 = {
name: '小小de',
age: 24,
job: {
java: 5,
PHP: 3
}
}
let datas = this.$util.deepClone(obj1);
datas.nickName = '小不点';
console.log('返回结果:', datas);
let obj2 = [
{ goodsName: '世界欠你一杯好茶', price: 1099 },
{ goodsName: '好吃的水果', price: 321 }
]
let datas = this.$util.deepClone(obj2);
datas.push({ goodsName: '水果拼盘', price: 99.5 });
console.log('返回结果:', datas);