<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <script type="text/javascript"> class Person { name="cyg"; age=20; } let p1=new Person(); /*let p2=p1; p2.name="liwen"; console.log(p1); console.log(p2); */ //以上浅拷贝 //以下深拷贝 let p2=new Object(); /*p2.name=p1.name; p2.age=p1.age;*/ /*for(let key in p1) { p2[key]=p1[key]; }*/ /*p2.name="liwen"; console.log(p1); console.log(p2);*/ //为什么这样不会浅拷贝,因为创建了·一个新的对象. Object.assign(p2,p1); // assign方法可以将第二个参数的对象的属性和方法拷贝到第一个参数的对象中 p2.name="666"; console.log(p1.name); console.log(p2.name); </script> </body> </html>
对象深拷奥秘
关注
打赏