9.23 项目4.2.0中数组的浅拷贝之后 置空导致浅拷贝失效的问题总结

//  项目4.2.0中数组的浅拷贝之后 置空导致浅拷贝失效的问题总结

// 1.最常见的浅拷贝,使用push
let a=[2]
let b=a
a.push(3)
console.log(a,b);
// [ 2, 3 ] [ 2, 3 ]


// 2.此时如果将a直接赋值为其他数组,那么a和b会直接解除绑定,b不会随着a更新而更新,而是保持之前的值

let a2=[2]
let b2=a2
a2=[2,3]
console.log(a2,b2);
// [ 2, 3 ] [ 2]

// 3.此时如果将a赋值为[]空数组,那么a和b会直接解除绑定,b不会随着a更新而更新,而是保持之前的值
let a3=[2]
let b3=a3
a3=[]
console.log(a3,b3);
// [] [ 2]

// 4.那么如果我需要置空,但是不想解除绑定,应该怎么做呢?此时采用length=0赋值为空,可看出绑定关系未解除
let a4=[2]
let b4=a4
a4.length=0;
console.log(a4,b4);
// [],[]

web4.0里GET请求都是同步的,故都是先执行GET再进行绑定的,故可以在GET方法里进行=[]操作,而不用担心影响到绑定关系。
而web4.2里请求都是异步的,故需要将=[]改为.length=0

arr = []; 与 arr.length = 0; 区别

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值