专栏
源码
3D
登录
注册
首页
>
专栏
>
前端
> 文章详情
js中 4种浅拷贝方式
发布于:2023-07-03 15:14:14 原创发表 查看:43 讨论:0
首先深拷贝,浅拷贝,都是基于指 引用类型的变量 在 堆内存 中的占用空间情况。
k1i【易塔云】自习室
k1i【易塔云】自习室
一、在栈内存中保存字符串,数字,布尔以及指向堆内存的变量地址等固定的值。
k1i【易塔云】自习室
k1i【易塔云】自习室
k1i【易塔云】自习室
k1i【易塔云】自习室
让另个一变量d 等于 a,相当于在栈内存中开辟了一个新空间。
k1i【易塔云】自习室
栈中a和d已经是两个互不相干的变量,修改不影响对方。
k1i【易塔云】自习室
k1i【易塔云】自习室
二、在堆内存中保存函数、数组、对象,这些是不固定的值。
k1i【易塔云】自习室
k1i【易塔云】自习室
k1i【易塔云】自习室
k1i【易塔云】自习室
令d等于a,只会在栈内存中存入一个相同的地址(指向a指向的堆内存地址)。
k1i【易塔云】自习室
k1i【易塔云】自习室
k1i【易塔云】自习室
k1i【易塔云】自习室
此时改变d的值,a的值也会改变。
k1i【易塔云】自习室
浅拷贝仅仅只是拷贝了a在栈内存的堆地址,仍然和a共用一个堆内存。
k1i【易塔云】自习室
k1i【易塔云】自习室
三、浅拷贝的几种方式:
k1i【易塔云】自习室
k1i【易塔云】自习室
①、Object.assign(target, ...source)
k1i【易塔云】自习室
k1i【易塔云】自习室
k1i【易塔云】自习室
k1i【易塔云】自习室
Object.assign() 只复制属性值。
k1i【易塔云】自习室
k1i【易塔云】自习室
k1i【易塔云】自习室
k1i【易塔云】自习室
k1i【易塔云】自习室
②、扩展运算符 ...
k1i【易塔云】自习室
③、arr.slice()
k1i【易塔云】自习室
④、arr.concat()
写的不错
返回栏目
上一篇:function, new function, new Function 的区别
下一篇:js中 4种深拷贝方式
发表评论
匿名
还没有注册?
最新文章
热门笔记
理解:JS 的事件循环机制 Event Loop,微任务与宏任务
反问:JS 的原型链存在的意义是什么?为什么这样设计?
线性代数基础:求逆矩阵
总结:JS判断数据类型的四种方法
canvas 实例方法: save() 和 restore() 的理解
理解 js 构造函数
正则表达式_概念_简介_起源
js 对于地址栏中的 URI 的解析
原生 js 获取 html 是一个 HTML Collection 集合,使用 let 方法可以获得块级作用域
理解:js中 构造函数 与 原型的对应关系
可以直接扫码关注本站
微信扫码关注公众号
回复指定菜单关键词,即可获取相应功能或领取会员福利哦
可以直接扫码关注本站
微信扫码关注公众号
回复指定菜单关键词,即可获取相应功能或领取会员福利哦