将一个对象(数组A)复制给数组B,并删除数组A,在打印数组B,数组B是empty

本文探讨了JavaScript中数组的复制与对象赋值的区别,分析了浅拷贝与深拷贝的不同效果,并通过示例代码展示了两种情况下变量行为的变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组B打印出来是

我觉得原因是:将数组A复制给数组B后,删掉了数组A,因为这里的复制方式是B=A,这样就造成B其实是A的一个引用,所以再打印B 的内容,就会无效,所以显示的是empty。但是长度属性是B数组在复制的时候深度拷贝的,所以有效。

还有一个问题:

var test={};
(function(test){
    test={
        a:1,
        b:2
    };
})(test);

console.log(test);

控制台结果是

var test={};
(function(test){
    //test={
    //    a:1,
    //    b:2
    //};
    test.a=1;
    test.b=2;
})(test);

console.log(test);

我觉的出现这个现象的原因也是深拷贝和浅拷贝的关系。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值