前言
javascript的对象和数组存在赋值、浅拷贝和深拷贝的情况,实际就是变量是否指向同一块内存地址。
赋值:所有值指向同一内存地址
1 | var object = { a: 1, b: 2 }; |
浅拷贝:最外层指向不同内存地址,其他指向同一地址
1 | var object = { a: 1, b: 2, c: { x: 1, y: 2 } }; |
深拷贝:所有值指向不同的内存地址
1 | var object = { a: 1, b: 2, c: { x: 1, y: 2 } }; |
总结
根据项目的需求选择不同的拷贝方式,另外javascript的boolean、string等基本类型不存在深浅拷贝的情况。