vue 深浅拷贝

本文探讨了JavaScript中的深拷贝与浅拷贝概念,重点讲解在Vue.js环境中如何实现深拷贝。通过JSON.stringify和JSON.parse方法以及递归的方式,详细阐述了两种常用的深拷贝实现策略。
摘要由CSDN通过智能技术生成

说到深拷贝  我们不得不先说说基本数据类型(string boolean number null undefined) 和引用数据类型(array function object)的存储方式.

1.基本数据类型--名值存储在栈内存
 2.引用数据类型--名存在栈内存中,值存在于堆内存中,但是栈内存会提供一个引用的地址指向堆内存中的值。

所以当浅拷贝引用数据类型只是在栈内存复制了其指向堆内存的地址。
 例如 b=a 其实复制的是a的引用地址,而并非堆里面的值。
 因此深拷贝主要在于 在堆内存里也开辟一个新的内存存放b的值
  这样就能到达深拷贝的效果。

深拷贝方法一.项目中常用的方法

function deepClone(obj){

let _obj = JSON.stringify(obj),

objClone = JSON.parse(_obj);

return objClone

}

方法二.递归

export default {
		name: "Main",
		data() {
			return {
				obj1: {
					name: "weiqiujuan",
					sex: "girl",
					age: 22,
					favorite: "play",
					family: {
						brother: "son",
						mother: "haha",
						father: "heihei"
					},
				},
			};
		},
		methods: {
			goCopy() {
				let obj2 = this.deepClone(this.obj1);
				this
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值