你改变的值是字符串属于原始数据类型,打印出来当然不一样啦,改变对象里面的值打印出来是一样的
可以包含方法
endObj的意思是,再循环的时候,数据有可能是[]数组,有可能是{}对象,仔细看一下数据结构
如果遇到函数也直接赋值给副本对象就可以,function定义的函数指针会指向其调用者,基本上不会产生this指针问题。(除非function定义的时候用到了bind方法)
1,深拷贝想到达的目的就是改变拷贝后的对象里面的值不会影响之前的那个对象。
2,如果直接遍历赋值(有引用类型的时候)就是把赋值他的栈里面的地址了。(这样就是浅拷贝了)。所以要继续判断,直到里面只是原始类型,那样赋值过去就是新的栈了。
3,这样就做到了深拷贝了。
(纠正上面的回答的几个字)