0条评论
还没有人评论过~
let a=[1,2,3];
let b = a;
b = [];
console.log(a); // 输出为 [1,2,3]
在这里我想让a成为现在b的值, 就是清空, 请问有什么方法可以, 可以将变量b指向a相同的一个内存空间
let a=[1,2,3]; let b = a; b.length = 0; // 清空 - 并不修改引用 console.log(a); // 输出为 []
如果你想通过b操作a,有一个前提,就是操作b的引用。
楼上的b.length=0,是正确用法。
let a=[1,2,3]的意思是:创建一个数组[1,2,3],然后把这个数组的引用 赋值给 a。
let b=a 的意思是:把a的值,即[1,2,3]的引用,赋值给b。
b=[] 的意思是:创建一个空数组[],把空数组[]的引用 赋值给b。
所以你可以发现,b=[]之后,a和b的值,是不同数组的引用。你操作b自然没有效果。
而b.length=0 意思是,将 b的值中一个属性length设置为0,即 数组[1,2,3]的属性length设置为0,就可以清空[1,2,3]。
此时a和b的值,为同一个数组。
这里面的关键是,你要理解,代码中的a,b其实就是储存变量用的。