举个例子吧。 如果声明两个数组arr1和arr2,将arr1代入arr2,然后更改arr2的值,则可以看到arr1的值也发生了变化。 因为这是对内存栈的引用,而不是实际赋值。
let arr1=['11 '、' 22 '、' 33']; let arr2=arr1; 控制台. log (arr 2; //显示11、22、33 arr2. push (' 44 ); 控制台. log (arr 1; 查看//11、22、33和44时,可以使用对象扩展运算符轻松解决此问题。 现在改造代码。
let arr1=['11 '、' 22 '、' 33']; //let arr2=arr1; let arr2=[.arr1]; 控制台. log (arr 2; ARR2.push('44 ); 控制台. log (arr 2; 控制台. log (arr 1; 在控制台预览中,您可以看到arr1没有更改,简单的扩展运算符解决了此问题。