博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js_深拷贝对象
阅读量:7251 次
发布时间:2019-06-29

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

深拷贝和浅拷贝的区别:深拷贝和浅拷贝的使用场景是在复杂对象里,即对象的属性还是对象,
浅拷贝是指只复制一层对象,当对象的属性是引用类型时,实质复制的是其引用,当引用指向的值改变时也会跟着变化
//深拷贝对象function deepCopy(value){    if(typeof value != 'object'){        return value;    }    let o = value.constructor == Array ? [] :{};    if(o instanceof Array){        for(let key of Object.keys(value)){            o[key] = deepCopy(value[key]);        }    }else{        for(let i in value){            o[i] = deepCopy(value[i]);        }    }    return o;}let a=[11,[2,3,[4]],5,7,[9]];let b = {    a:{g:6},    b:1,    c:{        d:{            e:4        },        f:5    }}let c = deepCopy(a);let d = deepCopy(b);//浅拷贝,只copy第一层的属性值,如果属性值是对象,则复制的是这个对象的引用。function shallowCopy(src) {  var dst = {};  for (var prop in src) {    if (src.hasOwnProperty(prop)) {      dst[prop] = src[prop];    }  }  return dst;}

转载地址:http://nohbm.baihongyu.com/

你可能感兴趣的文章
比特币钱包隔离认证开发指南
查看>>
《从0到1学习Flink》—— Data Sink 介绍
查看>>
Vue.js 渲染简写样式存在的问题
查看>>
cocos2d-x (js-binding)游戏开发解决方案设计稿
查看>>
改善Python程序的91个建议
查看>>
简单说说 angular.json 文件
查看>>
js-数据运算
查看>>
解决阿里云ECS运行前后台分离项目调用QQ互联导致: redirect uri is illegal(100010)问题...
查看>>
Slog48_项目上线之域名的备案
查看>>
[ 一起学React系列 -- 1 ] 信笔说JSX
查看>>
homebrew报错问题解决
查看>>
肉眼看到的相同两个字串的不同
查看>>
ng-zorror@~0.6升级@^1在开发中有哪些差异
查看>>
微信小程序 request请求封装
查看>>
Git 学习
查看>>
ES6深入浅出 模块系统
查看>>
一道js闭包面试题的学习
查看>>
微信小程序(新)必备知识
查看>>
网站接入微信扫码登录并获取用户基本信息(微信开放平台)
查看>>
HTC VIVE Wave 概览
查看>>