哈喽,大家好,好久没更新文章了,假期在一家小公司实习,额比较忙,大家都懂的。。。 现在大四了,珍惜在学校的最后俩月时间,巩固基础!
坚持每日一题!
// 浅拷贝:只拷贝指针,如果数组基本数据类型,则互不影响,如果数组类型为对象/数组,则一方变化,另一方也会跟着变化
// 方法:slice concat
// 浅拷贝的实现
var shallowCopy = (obj) => {
if (typeof obj === 'Object') return
var newObj = obj instanceof Array ? [] : {}
for (key in obj) {
if (obj.hasOwnProperty(key)) {
newObj = obj[key]
}
}
return newObj
}
shallowCopy()
// 深拷贝:拷贝全部内容,并会开辟新的内存空间存储,前后互不影响
// 方法:JSON.parse(JSON.stringify()) 原因是:利用stringify将js对象转换为JSON字符串,然后再通过parse方法将字符串反序列化为js对象
// 深拷贝的实现 (浅拷贝基础上 递归)
var deepCopy = (obj) => {
if (typeof obj === 'Object') return
var newObj = obj instanceof Array ? [] : {}
for (key in obj) {
if (obj.hasOwnProperty(key)) {
newObj = typeof obj[key] === 'Object' ? deepCopy(obj[key]) : obj[key]
}
}
return newObj
}
deepCopy()