我有一个变量arg,它已按如下方式分配
arg = [...arg];
这项任务意味着什么?
答案 0 :(得分:-3)
假设原始arg
是一个数组
使用示例
可以最好地证明这里发生的事情const x = [1,2,3,4];
const y = [...x];
x == y; // false
x === y; // false
x[0] == y[0]; // true
x[0] === y[0]; // true
因此,虽然数组的内容保持相同,但数组本身是另一个引用。因此,这创建了数组的副本,因此不会修改原始数组。
这方面的一个例子可以是方法
function example1(x) {
x = [...x];
x[0] = 0;
return x;
}
function example2(x) {
x[0] = 0;
return x;
}
const a = [1,2,3];
console.log(a);
const b = example1(a);
// The input variable is not mutated
console.log(a); // [1,2,3]
console.log(b); // [0,2,3]
const c = example2(a);
// The input variable is mutated as well
console.log(a); // [0,2,3]
console.log(c); // [0,2,3]