探索JavaScript当中的深拷贝,浅拷贝.

244 阅读1分钟

前言 

在JavaScript当中数据分为俩种基本类型.

第一种:基本数据类型  存贮在栈中  传值    如: boolen,number,string,null,undefined

第二种:引用数据类型  存储在堆中  传址    如:array,function,object

一、什么是浅拷贝 

       就是复制对象之后,改变当前的值,复制的对象的值也会改变.

   var obj  = {name:"张三"}  // {name:"李四"}
   let copy = obj 
   copy.name = "李四" 
   console.log(obj)

    二、什么是深拷贝

      复制对象,改变当前值,复制的对象也不会改变

 (1)  var obj = {name:"张三"} // {name:"张三"} 
      let copy = Json.Prase(Json.stringify(obj))
      copy.name = "李四"

    object.entries // 返回一个可枚举的数组
(2) function copy(obj){
    let data = obj instance of Array : [] ? {}
    for (const(key,value) of Object.entries(obj)){
    data[key] = typeof Value =="object" ? copy(value):value
    }
     return data
    }
(3) 剩下的方法就不一一列举了, 有兴趣要自己探索哦