deepClone

把一个变量的值赋值给另一个变量,如果是引用类型,那么有两种方式    浅拷贝与深拷贝
  
 浅拷贝  引用给newObj  即拷贝指针  即引用传递  本身会改变
 
深拷贝,创建一个新对象,内容给原来需要拷贝的对象的内容是一样的。 类似值传递(值传递是指基本数据类型)  本身不会改变
深拷贝的三种方式
第一种,利用map返回新数组的机制 return userlist.map(item=>item);
第二种,利用Array.from返回新数组的机制 return Array.from(userlist);
第三种,利用 ...解开数组.自己在套上一个新的数组 return [...userlist];
 
 
deepClone: obj => {
var _obj
if (typeof obj === 'object' && obj !== null) {
if (Object.prototype.toString.call(obj) === '[object Object]') {
_obj = {}
for (var key in obj) {
_obj[key] = utils.deepClone(obj[key])
}
return _obj
} else if (Object.prototype.toString.call(obj) === '[object Array]') {
_obj = []
for (var _key in obj) {
_obj[_key] = utils.deepClone(obj[_key])
}
return _obj
}
} else {
return obj
}
},
 
数据
JSON.parse(JSON.stringify())
数组
filter
find
Array.prototype.forEach
对象
Object.assign({}, this.$route.query, { tabName: data.name })

.除了上面两种方法之外,我们还可以借用JQ的extend方法。

$.extend( [deep ], target, object1 [, objectN ] )

 

 

 

转载于:https://www.cnblogs.com/gudun/p/9522141.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值