分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

js 浅与深拷贝

发布时间:2023-09-06 01:34责任编辑:苏小强关键词:js

 1、浅拷贝

let obj1 = { ?a: 1, ?b: 2}let obj2 = obj1obj2.b = 3console.log(obj1) ?// { a: 1, b: 3 }console.log(obj1 === obj2) //true

 2、深拷贝

function deepCopy(obj) { ??if(typeof obj === "object") { ??????if(obj.constructor === Array) { ??????????var newArr = [] ??????????for(var i = 0; i < obj.length; i++) newArr.push(obj[i]) ??????????return newArr ??????} else { ??????????var newObj = {} ??????????for(var key in obj) { ??????????????newObj[key] = this.deepCopy(obj[key]) ??????????} ??????????return newObj ??????} ??} else { ??????return obj ??}}//理解版
let obj1 = { ?a: ‘1‘, ?b: ‘2‘, ?c: { ???d: ‘3‘ ?}, ?d: function aa () {}}function deepCopy (obj) { //简化后 ?let temp = obj.constructor === Array ? [] : {} ?for (let val in obj) { ???temp[val] = typeof obj[val] == ‘object‘ ? deepCopy(obj[val]) : obj[val] ?} ?return temp}console.log(deepCopy(obj1)) //{ a: ‘1‘, b: ‘2‘, c: { d: ‘3‘ }, d: [Function: aa] }

js 浅与深拷贝

原文地址:https://www.cnblogs.com/vhen/p/8185112.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved