JavaScript基于遍歷操作實現(xiàn)對象深拷貝功能示例
本文實例講述了JavaScript基于遍歷操作實現(xiàn)對象深拷貝功能。分享給大家供大家參考,具體如下:
function getType(o){ var _t; return ((_t = typeof(o)) == "object" ? o==null && "null" || Object.prototype.toString.call(o).slice(8,-1):_t).toLowerCase(); } function extend(destination,source){ for(var p in source){ if(getType(source[p])=="array"||getType(source[p])=="object"){ destination[p]=getType(source[p])=="array"?[]:{}; arguments.callee(destination[p],source[p]); }else{ destination[p]=source[p]; } } } var test={ a:"ss", b:"dd", c:[ {d:"css",e:"cdd"}, { m:"ff", n:[ {kk:"11",jj:"22"}, {ll:"44"} ] } ] }; var test1={}; extend(test1,test); console.log(test); console.log(test1); test1.c[1].n[0].kk="change"; //改變test1的c屬性對象的d屬性 console.log(test); console.log(test1); console.log(test.c[1].n[0]); console.log(test1.c[1].n[0]);
測試結果
從測試結果可以看到,通過使用這個遍歷的方法,成功將對象test深拷貝復制一份,得到test1。并且更改test1對象的屬性,并不會對test對象產(chǎn)生影響。
感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。
更多關于JavaScript相關內容可查看本站專題:《javascript面向對象入門教程》、《JavaScript切換特效與技巧總結》、《JavaScript查找算法技巧總結》、《JavaScript錯誤與調試技巧總結》、《JavaScript數(shù)據(jù)結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數(shù)學運算用法總結》
希望本文所述對大家JavaScript程序設計有所幫助。
相關文章
JS實現(xiàn)自定義簡單網(wǎng)頁軟鍵盤效果代碼
這篇文章主要介紹了JS實現(xiàn)自定義簡單網(wǎng)頁軟鍵盤效果代碼,可實現(xiàn)簡單模擬鍵盤布局及響應鼠標點擊按下鍵盤按鍵功能,簡單實用,具有一定參考借鑒價值,需要的朋友可以參考下2015-11-11基于javascript實現(xiàn)的購物商城商品倒計時實例
本文主要介紹了基于javascript實現(xiàn)的購物商城商品倒計時實例,代碼詳細,可直接復制試試看效果。需要的朋友可以參考借鑒2016-12-12Bootstrap中文本框的寬度變窄并且加入一副驗證碼圖片的實現(xiàn)方法
這篇文章主要介紹了Bootstrap中文本框的寬度變窄并且加入一副驗證碼圖片的實現(xiàn)方法的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-06-06JavaScript高級程序設計 閱讀筆記(十二) js內置對象Math
js內置對象Math使用介紹, 需要的朋友可以參考下2012-08-08