JavaScript中浅拷贝和深拷贝的区别和实现
要理解JavaScript中浅拷贝和深拷贝的区别,首先要明白JavaScript的数据类型 JavaScript有两种数据类型,基础数据类型和引用数据类型 基础数据类型:保存在栈内存中的简单数据段 ,有undefined,boolean,number,string,null 引用数据类型:Array,对象,Function 保存在堆内存空间中 a1 = 0;a2 = 'this is str';a3 = null 存放在栈内存中 var c =[1,2,3] 与 var d = {m:20} 变量名与内存地址存储在栈内存中,[1,2,3]与{m:20} 作为对象存储在堆内存中 基础数据类型的复制(如var a = 20 var b = a) 引用数据类型的复制 ( var m ={a:10, b:20} var n = m) m与n指向同一个内存空间,当m或者n改变时,另一个也跟着改变 如m.a = 80 ; console.log(n.a) // 80 怎么样使引用数据类型有各自独立的内存空间 一、采用递归的方法复制拷贝对象 function deepclone(obj) { le...