首页 > 编程语言 >JavaScript学习笔记—复制

JavaScript学习笔记—复制

时间:2023-01-22 22:45:10浏览次数:41  
标签:arr const 对象 JavaScript 笔记 复制 拷贝 arr4

9. 复制

(1)浅拷贝(shallow copy)

  • 通常对对象的拷贝都是浅拷贝
  • 只对对象的浅层进行复制(只复制一层)
  • 如果对象中存储的数据是原始值,那么拷贝的深浅是不重要
  • 浅拷贝只会对对象本身进行复制,不会复制对象中的属性(或元素)
const arr = ["孙悟空", "猪八戒"];
const arr2 = arr.slice(); // 浅拷贝
/*
  用展开运算符进行浅拷贝
  可以将一个数组中的元素展开到另一个数组中或者作为函数的参数传递
*/
//const arr3 = [arr[0], arr[1]];
const arr3 = [...arr];
//const arr3 = ["唐僧", ...arr, "白骨精"];
// 展开运算符小例子
function sum(a, b, c){
  return a + b +c;
}
const arr4 = [10, 20, 30];
let result = sum(...arr4); // 60 等价于 sum(arr4[0], arr4[1], arr4[2])
/*
  对象的复制
  Object.assign(目标对象, 被复制的对象)
  将被复制对象中的属性复制到目标对象里,并将目标对象返回
*/
const obj = {name: "孙悟空", age: 18};
const obj2 = {};
Object.assign(obj2, obj);

const obj3 = {...obj}; // 将obj中的属性在新对象中展开

(2)深拷贝(deep copy)

  • 不仅仅复制对象本身,还复制对象中的属性和元素
  • 因性能问题,通常不太使用深拷贝
const arr = [{name: "孙悟空"}, {name: "猪八戒"}];
const arr2 = structuredClone(arr); // 深拷贝

标签:arr,const,对象,JavaScript,笔记,复制,拷贝,arr4
From: https://www.cnblogs.com/zibocoder/p/17064758.html

相关文章

  • 学习笔记——SSM整合(思路、步骤)
    2023-01-22一、SSM整合1、Spring+SpringMVC(1)容器管理对象,由DispatcherServlet管理(2)Spring容器对象,由ContextLoaderListener管理2、解决组件扫描的冲突问题(1)SpringM......
  • JavaScript 跨域问题
    一、什么是跨域跨域(Cross-originresourcesharing,CORS)是指在浏览器中,同源策略限制了来自不同域的脚本对每个网络资源的访问权限。同源策略限制了一个网页脚本只能......
  • JavaScript学习笔记—数组的方法
    1.非破坏性方法(1)Array.isArray():用来检查一个对象是否是数组console.log(Array.isArray([1,2,3,4]));//trueconsole.log(Array.isArray({name:"孙悟空"}));//fals......
  • 编译snowboy 笔记
    1.安装依赖sudoapt-getinstallpulseaudiosoxpython3-pyaudioswiglibatlas-base-devpython3-dev2.获取源代码gitclonehttps://github.com/Kitt-AI/snowboy.git......
  • 《RPC实战与核心原理》学习笔记Day5
    06|RPC实战:剖析gRPC源码,动手实现一个完整的RPC我们通过动态代理技术,屏蔽RPC调用的细节,从而让使用者能够面向接口编程。什么是gRPC?gRPC是由Google开发并且开源的一款......
  • JavaScript对象的创建方式有几种?怎么用?
    JavaScript对象的创建方式有几种?怎么用?对象是JavaScript的基本数据类型,对象不仅是字符串到值的映射还保持自有属性,JavaScript对象可以从一个称为原型的对象继承属性,对象的方......
  • AC 自动机学习笔记
    前置知识:KMP,trie。一.自动机这里的自动机都指有限状态自动机(DFA)。一个DFA可以理解为一张有向图,由有限的状态(点),字母表,转移函数(边),开始状态与终止状态(起点,终点)组成。AC......
  • 学习笔记——SpringMVC拦截器的两种装配方式;SpringMVC拦截器工作原理;SpringMVC中的异
    2023-01-22 一、SpringMVC拦截器的两种装配方式1、全局装配(放置在springmvc.xml中)<!--装配拦截器--><!--全局装配--><mvc:interceptors><ref......
  • 数据结构笔记(一)
    程序=数据结构+算法数据结构(C语言版)(第2版)https://weread.qq.com/web/reader/b57320b071db572cb578fb5数据结构与算法基础(青岛大学-王卓)https://www.bilibili.com/video......
  • Elasticsearch 核心技术与实战 学习笔记
    分片的设定对于生产环境中分片的设定,需要提前做好容量规划分片数设置过小导致后续无法增加节点实现水品扩展单个分片的数据量太大,导致数据重新分配耗时分片数设......