赋值 、浅拷贝、深拷贝
通过比较返回true和false,判断赋值和浅拷贝的地址、内容是否一样
赋值:
let a = [1, 2, 3]; let b = a; if (b === a) { console.log("true"); } else { console.log("false"); } //true
不会开辟新的内存空间,只是赋值了对象的引用.也就是除了b这个名字之外,没有其他的内存开销,ab修改相互影响。
浅拷贝:
//数组concat
let a = [1, 2, 3]; let b = a.concat(); if (b === a) { console.log("true"); } else { console.log("false"); } //false
    // 数组 slice
      let a = [1, 2, 3];
      let b = a.slice();
      if (b === a) {
        console.log("true");
      } else {
        console.log("false");
      }
   
   //拷贝出来数组中的对象还是共享同一内存地址
浅拷贝会创建新的对象,拷贝原对象的第一层对象的引用,
深拷贝:
深拷贝是拷贝多层,每一级别的数据都会拷贝出来
                    
                
                
            
        
浙公网安备 33010602011771号