博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
deepClone
阅读量:4985 次
发布时间:2019-06-12

本文共 971 字,大约阅读时间需要 3 分钟。

把一个变量的值赋值给另一个变量,如果是引用类型,那么有两种方式    浅拷贝与深拷贝
  
 浅拷贝  引用给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

你可能感兴趣的文章
256. Paint House房屋染色
查看>>
671. Second Minimum Node In a Binary Tree 非递减二叉树中第二小的元素
查看>>
747. Largest Number At Least Twice of Others比所有数字都大两倍的最大数
查看>>
105. Construct Binary Tree from Preorder and Inorder Traversal根据前中序数组恢复出原来的树...
查看>>
MS-SQL Server [摘改]
查看>>
实验五 6 6
查看>>
进阶攻略|前端最全的框架总结
查看>>
网站二次开发的总结
查看>>
把手账打印成书 把回忆装订成册
查看>>
洛谷P4116 Qtree3
查看>>
洛谷 P1195 口袋的天空
查看>>
网络协议
查看>>
网络基础之网络协议
查看>>
Jzoj3528 图书馆
查看>>
daemon虚拟光驱
查看>>
Java基础__Integer类型中的自动装箱
查看>>
头文件包含方式
查看>>
C# 日志系统 log4net 配置及使用
查看>>
JavaScript获取当前url路径
查看>>
Python_正则(re.math()的简单说明)
查看>>