Javascript 淺拷貝、深拷貝的實現(xiàn)代碼
更新時間:2008年12月04日 01:06:42 作者:
Javascript中的對像賦值與Java中是一樣的,都為引用傳遞.就是說,在把一個對像賦值給一個變量時,那么這個變量所指向的仍就是原來對像的地址.那怎么來做呢 答案是克隆.
什么是"clone"?
在實際編程過程中,我們常常要遇到這種情況:有一個對象A,在某一時刻A中已經(jīng)包含了一些有效值,此時可能會需要一個和A完全相同新對象B,并且此后對B任何改動都不會影響到A中的值,也就是說,A與B是兩個獨立的對象,但B的初始值是由A對象確定的。在Java/javasript語言中,用簡單的賦值語句是不能滿足這種需求的。要滿足這種需求雖然有很多途徑,但實現(xiàn)clone()方法是其中最簡單,也是最高效的手段,當然了 javascript語言中并沒有此方法.
所以我特意寫了兩個克隆方法:一個為淺復制 ,一個為深復制.
解釋:
淺復制(影子克隆):只復制對象的基本類型,對象類型,仍屬于原來的引用.
深復制(深度克隆):不緊復制對象的基本類,同時也復制原對象中的對象.就是說完全是新對象產(chǎn)生的.
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
在實際編程過程中,我們常常要遇到這種情況:有一個對象A,在某一時刻A中已經(jīng)包含了一些有效值,此時可能會需要一個和A完全相同新對象B,并且此后對B任何改動都不會影響到A中的值,也就是說,A與B是兩個獨立的對象,但B的初始值是由A對象確定的。在Java/javasript語言中,用簡單的賦值語句是不能滿足這種需求的。要滿足這種需求雖然有很多途徑,但實現(xiàn)clone()方法是其中最簡單,也是最高效的手段,當然了 javascript語言中并沒有此方法.
所以我特意寫了兩個克隆方法:一個為淺復制 ,一個為深復制.
解釋:
淺復制(影子克隆):只復制對象的基本類型,對象類型,仍屬于原來的引用.
深復制(深度克隆):不緊復制對象的基本類,同時也復制原對象中的對象.就是說完全是新對象產(chǎn)生的.
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
相關文章
Echarts圖表如何利用formatter自定義tooltip的內(nèi)容和樣式
這篇文章主要給大家介紹了關于Echarts圖表如何利用formatter自定義tooltip的內(nèi)容和樣式的相關資料,echarts的圖表配置非常的靈活自由,但是不熟悉的時候容易不知道怎么配置,需要的朋友可以參考下2023-06-06

