原生的深拷貝~
分享一個 JavaScript 原生的深拷貝方法 structuredClone,其實這個方法出了很久了,但是存在感一直很低~P1D28資訊網——每日最新資訊28at.com
圖片P1D28資訊網——每日最新資訊28at.com
說這個方法前,我們先來討論一下,常見的深拷貝都有哪些方案呢?P1D28資訊網——每日最新資訊28at.com
JSON.parse & JSON.stringify()
很多人會用 JSON.parse(JSON.stringify(obj))來對對象進行深拷貝操作,但是這個方式缺點太多了P1D28資訊網——每日最新資訊28at.com
圖片P1D28資訊網——每日最新資訊28at.com
圖片P1D28資訊網——每日最新資訊28at.com
可以看到很多數據類型都沒有深拷貝成功P1D28資訊網——每日最新資訊28at.com
數據類型P1D28資訊網——每日最新資訊28at.com | 克隆結果P1D28資訊網——每日最新資訊28at.com |
numberP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
stringP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
undefinedP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
nullP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
booleanP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
objectP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
ArrayP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
FunctionP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
mapP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
SetP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
DateP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
ErrorP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
RegexP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
Dom節點P1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
并且在對象具有環引用的情況下,這種深拷貝方式會導致報錯P1D28資訊網——每日最新資訊28at.com
圖片P1D28資訊網——每日最新資訊28at.com
圖片P1D28資訊網——每日最新資訊28at.com
lodash.cloneDeep
lodash 的 cloneDeep也是深拷貝的手段之一,且非常完善,能成功拷貝各種數據類型P1D28資訊網——每日最新資訊28at.com
但是大家要注意使用 lodash 時要使用 lodash-es,這樣才能做到按需加載,減少不必要的代碼體積P1D28資訊網——每日最新資訊28at.com
圖片P1D28資訊網——每日最新資訊28at.com
圖片P1D28資訊網——每日最新資訊28at.com
數據類型P1D28資訊網——每日最新資訊28at.com | 克隆結果P1D28資訊網——每日最新資訊28at.com |
numberP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
stringP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
undefinedP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
nullP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
booleanP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
objectP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
ArrayP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
FunctionP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
mapP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
SetP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
DateP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
ErrorP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
RegexP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
Dom節點P1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
window.structuredClone
全局的 structuredClone() 方法使用結構化克隆算法將給定的值進行深拷貝P1D28資訊網——每日最新資訊28at.com
圖片P1D28資訊網——每日最新資訊28at.com
圖片P1D28資訊網——每日最新資訊28at.com
當克隆Function、Dom節點時,會報錯P1D28資訊網——每日最新資訊28at.com
圖片P1D28資訊網——每日最新資訊28at.com
圖片P1D28資訊網——每日最新資訊28at.com
其他數據類型可以成功拷貝~P1D28資訊網——每日最新資訊28at.com
圖片P1D28資訊網——每日最新資訊28at.com
數據類型P1D28資訊網——每日最新資訊28at.com | 克隆結果P1D28資訊網——每日最新資訊28at.com |
numberP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
stringP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
undefinedP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
nullP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
booleanP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
objectP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
ArrayP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
FunctionP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
mapP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
SetP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
DateP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
ErrorP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
RegexP1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
Dom節點P1D28資訊網——每日最新資訊28at.com | ?P1D28資訊網——每日最新資訊28at.com |
P1D28資訊網——每日最新資訊28at.com
本文鏈接:http://www.www897cc.com/showinfo-26-87254-0.htmlJavaScript 原生深拷貝方法來啦!structuredClone 閃耀登場~
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: 解密 Python 的變量和對象,它們之間有什么區別和聯系呢?
下一篇: 不知道這些不要說玩轉了Controller接口