Manchmal wird bei der Bearbeitung von Arrays die Klonmethode verwendet, um Werte direkt zuzuweisen, ohne diese Methode zu verwenden. Um Speicher zu sparen? Es gibt auch flache Kopien, tiefe Kopien usw., verzeihen Sie mir, dass ich ein Anfänger bin. .
好处就是,不同于“=”,clone的数组是在内存中是独立的,你可以对它为所欲为。
js中,数组和对象都属于引用类型。
所以,克隆的作用就是用来新生成一份数据,不污染原来的数据。
至于深拷贝与浅拷贝:
可以看到,浅拷贝与深拷贝的区别在于:浅拷贝只是遍历了obj1的第一层,然后把obj1的每个属性都赋值给了obj2;而深拷贝则不会,当属性值为对象时,深拷贝会new一个空对象,然后把对象的值赋值给这个空对象,在返回这个空对象作为obj3的属性。
JS 编程中很重要的一个原则是「不是你的对象不要动」
做个形象的比喻,我借给你一本书(object),我以为你只是要阅读(read),你却拿去练字(write),这本书还给我我都没办法在读到正常的内容了。
而 deepClone 就解决了这个问题,我给你一本书,你去复印一下,书原样还给我,复印本你就可以随意处置了。
javascript中的深拷贝和浅拷贝?