總結(jié):
? ? 對(duì)于數(shù)組而言秒紧,實(shí)現(xiàn)深拷貝的方法? slice(0)绢陌、concat()、[...arr]熔恢、JSON.parse(JSON.stringify(arr))脐湾,這幾種方法只有JSON.parse(JSON.stringify(arr))是真實(shí)意義的深拷貝,其他的只是一維數(shù)組的深拷貝叙淌,對(duì)于多維數(shù)組僅實(shí)現(xiàn)了一維的深拷貝秤掌,但是JSON.parse(JSON.stringify(arr))對(duì)于undefined的值不起作用,會(huì)發(fā)生改變鹰霍。
? ? 對(duì)于對(duì)象而言闻鉴,實(shí)現(xiàn)深拷貝的方法??{...obj}、Object.assign({},obj)茂洒、JSON.parse(JSON.stringify(obj))孟岛,這幾種方法只有JSON.parse(JSON.stringify(obj))是真實(shí)意義的深拷貝,其他的對(duì)于單層對(duì)象為深拷貝督勺,JSON.parse(JSON.stringify(obj))仍然對(duì)undefined渠羞、正則表達(dá)式類(lèi)型、函數(shù)類(lèi)型等的值不起作用玷氏。
? ? 實(shí)現(xiàn)真正意義上的深拷貝可以使用遞歸堵未。
數(shù)組方法:
? ? 代碼:
? ? 結(jié)果:
對(duì)象方法:
? ? 代碼:
結(jié)果