有什么兼职做it的网站好,开发一个app需要哪些技术,网络服务费会计分录,婚介网站建设的策划let m { a: 10, b: 20 };
let n m;
n.a 15;
console.log(m.a) // 15 原因#xff1a;基本数据类型存储在栈内存中#xff0c;引用数据类型存储在堆内存中 #xff0c;引用数据类型存储在堆内存中会在栈内存中创建一个指针#xff0c;栈内存中的这个指针指向堆内存中的地…let m { a: 10, b: 20 };
let n m;
n.a 15;
console.log(m.a) // 15 原因基本数据类型存储在栈内存中引用数据类型存储在堆内存中 引用数据类型存储在堆内存中会在栈内存中创建一个指针栈内存中的这个指针指向堆内存中的地址所以let nm相当于n指针也指向和m相同的地址 修改n既修改m既所说的浅拷贝 想要避免这种情况可以如下操作深拷贝 let m { a: 10, b: 20 };
let _m JSON.parse(JSON.stringify(m)); //or _m{...m}
let n _m;
n.a 15;
console.log(m.a) // 10 JSON.parse(JSON.stringify这个方法可以简单粗暴的实现深拷贝但是还存在问题拷贝的对象中如果有函数undefinedsymbol当使用过JSON.stringify()进行处理之后都会消失。 参考文章js中的浅拷贝与深拷贝_js深浅拷贝-CSDN博客