51实现浅拷贝的方法?
(1)for···in只循环第一层//只复制第一层的浅拷贝functionsimpleCopy(obj1){varobj2=Array.isArray(obj1)?[]:{};for(letiinobj1){obj2[i]=obj1[i];}returnobj2;}varobj1={a:1,b:2,c:{d:3}}varobj2=simpleCopy(obj1);obj2.a=3;obj2.c.d=4;alert(obj1.a);//1alert(obj2.a);//3alert(obj1.c.d);//4alert(obj2.c.d);//4(2)Object.assign方法varobj={a:1,b:2}varobj1=Object.assign(obj);obj1.a=3;console.log(obj.a)//3(3)直接用=赋值leta=[0,1,2,3,4],b=a;console.log(a===b);a[0]=1;console.log(a,b);
来自:JavaScript语言-语法相关-操作符相关