• 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 ] )

     
     
  • 相关阅读:
    【HDU 1060】Leftmost Digit
    【HLG 1572】表达式计算(后缀表达式+栈的应用)
    Vue CLI3 开启gzip压缩
    html元素呼吸效果
    前端实现在线预览pdf、word、xls、ppt等文件
    devServer proxy的使用
    7个基础js函数
    前端初中高级面试题1
    模仿头条导航的左右滚动效果
    angular基本入门教程
  • 原文地址:https://www.cnblogs.com/gudun/p/9522141.html
Copyright © 2020-2023  润新知