前言
在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) 剩下的方法就不一一列举了, 有兴趣要自己探索哦