标签:复制 对象 就是 log 值拷贝 style str push let
1 浅拷贝
<script> 2 // Object.assign() 是浅拷贝, 对象和数组都可以用 3 4 const obj1 = { 5 a: 1, 6 b: 2, 7 c: 3 8 }; 9 //将obj1的值拷贝到obj2中,并添加一个新的属性值 10 const obj2 = Object.assign(obj1,{d:‘周浩‘}); 11 console.log(obj2) //{a: 1, b: 2, c: 3, d: "周浩"} 12 console.log(obj1) //{a: 1, b: 2, c: 3, d: "周浩"} 13 14 </script>
1 深拷贝
<script> 2 3 // 剩余参数...进行拷贝,这是深拷贝,新复制出来的对象和之前的对象不是一个地址 4 var obj1 = { 5 a: 1, 6 b: 2, 7 c: 3 8 }; 9 10 var obj2 = {...obj1}; 11 obj2.d=‘周浩‘ 12 13 console.log(obj1) //{a: 1, b: 2, c: 3} 14 console.log(obj2); //{a: 1, b: 2, c: 3, d: "周浩"} 15 16 17 </script>
深拷贝
JSON.parse()
就是将JSON字符串解析成字符串描述的JavaScript值或对象
JSON.stringfy()
是JSON.parse()
的反义,就是将一个JavaScript值(对象或者数组)转换为一个JSON字符串
<script>
// 对象 深克隆
// 利用 JSON.parse和JSON.stringify 可以进行深克隆
// JSON.stringify() 方法用于 将JavaScript 值转换为 JSON 字符串。
let obj1 = {
a: 1,
b: 2,
c: 3
}
let obj2 =JSON.parse( JSON.stringify(obj1));
obj1.d=‘周浩‘
console.log(obj2) //{a: 1, b: 2, c: 3}
console.log(obj1) //{a: 1, b: 2, c: 3, d: "周浩"}
</script>
深拷贝
<script> // 数组深克隆 // 利用 JSON.parse和JSON.stringify 可以进行深克隆 // JSON.stringify() 方法用于 将JavaScript 值转换为 JSON 字符串。 let arr1 = [1,2,3] let arr2 =JSON.parse( JSON.stringify(arr1)); arr2.push(‘周浩‘) console.log(arr2) // [1, 2, 3, "周浩"] console.log(arr1) // [1, 2, 3] </script>
以上都是 对象 和 数组 的深浅拷贝
标签:复制 对象 就是 log 值拷贝 style str push let
原文地址:https://www.cnblogs.com/javascript9527/p/11367618.html