建议最简单的第一种

1、通过 JSON 对象实现深拷贝

this.data = JSON.parse(JSON.stringify(this.vm.$store.state.security.menuArr))

2、通过jQuery的extend方法实现深拷贝

var array = [1,2,3,4]; var newArray = $.extend(true,[],array);

3、使用递归的方式实现深拷贝

//使用递归的方式实现数组、对象的深拷贝
function deepClone1(obj) {
//判断拷贝的要进行深拷贝的是数组还是对象,是数组的话进行数组拷贝,对象的话进行对象拷贝
var objClone = Array.isArray(obj) ? [] : {};
//进行深拷贝的不能为空,并且是对象或者是

if (obj && typeof obj === "object") {
for (key in obj) {
if (obj.hasOwnProperty(key)) {
if (obj[key] && typeof obj[key] === "object") {
objClone[key] = deepClone1(obj[key]);
} else {
objClone[key] = obj[key];
}
}
}
}
return objClone;
}

4、Object.assign()拷贝
当对象中只有一级属性,没有二级属性的时候,此方法为深拷贝,但是对象中有对象的时候,此方法,在二级属性以后就是浅拷贝。
5、lodash函数库实现深拷贝
lodash很热门的函数库,提供了 lodash.cloneDeep()实现深拷贝
---------------------

本面试题为前端常考面试题,后续有机会继续完善。我是歌谣,一个沉迷于故事的讲述者。

欢迎一起私信交流。

“睡服“面试官系列之各系列目录汇总(建议学习收藏)

“约见”面试官系列之常见面试题第十七篇之实现深拷贝(建议收藏)相关推荐

  1. “约见”面试官系列之常见面试题第十一篇之canvas(建议收藏)

    目录 前言 介绍 小试牛刀 应用案例 动画 API介绍 Demo 游戏 三要素 Demo 截图 API介绍 canvas.style.width 和 canvas.width 的区别 Demo 合成图 ...

  2. “约见”面试官系列之常见面试题第二十七篇之vue-router的重要属性

    export default new Router({mode: 'history', //路由模式,取值为history与hashbase: '/', //打包路径,默认为/,可以修改routes: ...

  3. “约见”面试官系列之常见面试题第二十三篇之get和post区别(建议收藏)

    POST和GET是HTTP协议中最常用的两种传参方式,这里小小总结一下两者的区别,欢迎补充~! 请求方式 GET POST 参数位置 url的query中 一般在content中,query也可 参数 ...

  4. “约见”面试官系列之常见面试题第二十一篇之函数防抖和节流(建议收藏)

    目录 前言 概念 函数防抖(debounce) 函数节流(throttle) 常见应用场景 函数防抖的应用场景 函数节流的应用场景 实现原理 函数防抖(debounce) 函数节流(throttle) ...

  5. “约见”面试官系列之常见面试题第二十篇之vuex得理解(建议收藏)

    一.概念 vuex是一个专为vue.js应用程序开发的状态管理模式(它采用集中式存贮管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化). 二.五大核心属性 核心属性为:sta ...

  6. “约见”面试官系列之常见面试题第十三篇之css动画效果(建议收藏)

    目录 CSS动画简介 第一部分:CSS Transition 1.1 基本用法 1.2 transition-delay 1.3 transition-timing-function 1.4 tran ...

  7. “约见”面试官系列之常见面试题第十篇值meta标签(建议收藏)

    目录 什么是meta标签? meta的作用 meta的必需属性和可选属性 必需属性content 可选属性 常用meta标签大总结 charset 百度禁止转码 SEO 优化部分 viewport 各 ...

  8. “约见”面试官系列之常见面试题第八篇说说原型与原型链(建议收藏)

    目录 一.prototype 二.__proto__ 三.constructor 四.实例与原型 五.原型链 一.prototype 在JavaScript中,每个函数都有一个prototype属性, ...

  9. “约见”面试官系列之常见面试题第七篇说说Vue的生命周期(建议收藏)

    目录 Vue实例的生命周期全过程(图) 在beforeCreate和created钩子函数间的生命周期 created钩子函数和beforeMount间的生命周期 el选项的有无对生命周期过程的影响 ...

最新文章

  1. unity 摄像头跟着鼠标移动_Unity新手入门:摄像机随玩家一起移动
  2. python爬虫原理-python学习之python爬虫原理
  3. Django(part28)--F对象
  4. linux6如何分区,CentOS6.9安装 硬盘分区方案与分区步骤
  5. 阵列卡正确安装调试方法
  6. jquery 鼠标事件汇总
  7. 自建lol服务器,终于干正事了?英雄联盟宣布:艾欧尼亚服务器将进行扩容
  8. R语言中判断是否是整数。以及读写excel
  9. java 线程 condition_Java编程中实现Condition控制线程通信
  10. 广联达登录显示服务器异常去回答,广联达设置服务器异常5
  11. 4.6 Data符号调制——16QAM
  12. access如何设置定期报表汇总_access 2007创建分组报表或汇总报表
  13. 关于MySQL数据类型定义的几个细节-INT(N)/VARCHAR(N)/DECIMAL(M,N)
  14. centos搭建proxypool
  15. Mysql数据库学习笔记[完结]
  16. 《数学之美》读后感:看数学之美,悟技术之道
  17. python怎么返回上一步操作_一步一步教你如何用python操作mysql
  18. 基于MFRC522的门禁系统的设计与实现
  19. 云原生计算基金会宣布Envoy毕业
  20. 我收集的粤语同音词(160+组,不定期更新)

热门文章

  1. linux下安装配置jdk(解压版)
  2. 【转】C/S,B/S区别
  3. 用虚拟机把ubuntu安装到TF卡上
  4. HDU1258 DFS
  5. Oracle多表连接查询
  6. uushare新增类似美味(del.icio.us)的书签服务
  7. 使用脚本动态操作 SVG 文档
  8. php7对象转换成数组,php 如何把对象转换成数组对象
  9. rc mysql common_RR与RC隔离级别下MySQL不同的加锁解锁方式
  10. 【51单片机快速入门指南】4.6:I2C 与 PCF8563实时时钟日历芯片