您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關JavaScript實現克隆對象的方法的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
通過遍歷每個屬性并將它們克隆到新對象。使用JSON方法作為源對象必須是JSON安全的。因此,在源對象無法轉換為JSON的情況下,需要異常處理以保證其安全。object.assign
方法僅執行淺度克隆。這意味著嵌套屬性仍然通過引用克隆。
注,淺度克隆:簡單類型為值傳遞,對象類型是引用的傳遞。深度克隆:所有元素或屬性完全復制,與原對象完全脫離,也就是說所有對于新對象的修改都不會反映到原對象中。
克隆JavaScript對象有幾種方法,如下:
示例1:一種方法是遍歷源對象的屬性,并將所有屬性逐個復制到目標對象。它很簡單,但不常使用。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body style = "text-align:center;"> <h2 style = "color:green;" > js克隆對象 </h2> <p id="demo2">sourceObject = {a:1, b:2, c:3};</p> <button onClick="fun()">click </button> <p id="demo"></p> <script> function fun(){ const sourceObject = {a:1, b:2, c:3}; let tO = {}; for (let prop in sourceObject) { if (sourceObject.hasOwnProperty(prop)) { tO[prop] = sourceObject[prop]; } } document.getElementById("demo").innerHTML = "targetObject a = "+tO.a+", b = " + tO.b+", c = "+tO.c; } </script> </body> </html>
輸出:
點擊按鈕前
點擊按鈕后
示例2:此示例使用JSON。使用此方法,源對象必須是JSON安全的。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body style = "text-align:center;"> <h2 style = "color:green;" > js克隆對象 </h2> <p id="demo2">sourceObject = {a:1, b:2, c:3};</p> <button onClick="fun()">click </button> <p id="demo"></p> <script> function fun(){ const sourceObject = {a:1, b:2, c:3}; let tO = {}; tO = JSON.parse(JSON.stringify(sourceObject)); document.getElementById("demo").innerHTML = "targetObject a = "+tO.a+", b = " + tO.b+", c = "+tO.c; } </script> </body> </html>
示例3:此方法使用Object.assign
方法。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body style = "text-align:center;"> <h2 style = "color:green;" > js克隆對象 </h2> <p id="demo2">sourceObject = {a:1, b:2, c:3};</p> <button onClick="fun()">click </button> <p id="demo"></p> <script> function fun(){ const sourceObject = {a:1, b:2, c:3}; let tO = {}; tO = Object.assign({}, sourceObject); document.getElementById("demo").innerHTML = "targetObject a = "+tO.a+", b = " + tO.b+", c = "+tO.c; } </script> </body> </html>
感謝各位的閱讀!關于JavaScript實現克隆對象的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。