Javascript 淺拷貝、深拷貝的實(shí)現(xiàn)代碼
更新時(shí)間:2008年12月04日 01:06:42 作者:
Javascript中的對(duì)像賦值與Java中是一樣的,都為引用傳遞.就是說(shuō),在把一個(gè)對(duì)像賦值給一個(gè)變量時(shí),那么這個(gè)變量所指向的仍就是原來(lái)對(duì)像的地址.那怎么來(lái)做呢 答案是克隆.
什么是"clone"?
在實(shí)際編程過(guò)程中,我們常常要遇到這種情況:有一個(gè)對(duì)象A,在某一時(shí)刻A中已經(jīng)包含了一些有效值,此時(shí)可能會(huì)需要一個(gè)和A完全相同新對(duì)象B,并且此后對(duì)B任何改動(dòng)都不會(huì)影響到A中的值,也就是說(shuō),A與B是兩個(gè)獨(dú)立的對(duì)象,但B的初始值是由A對(duì)象確定的。在Java/javasript語(yǔ)言中,用簡(jiǎn)單的賦值語(yǔ)句是不能滿足這種需求的。要滿足這種需求雖然有很多途徑,但實(shí)現(xiàn)clone()方法是其中最簡(jiǎn)單,也是最高效的手段,當(dāng)然了 javascript語(yǔ)言中并沒(méi)有此方法.
所以我特意寫了兩個(gè)克隆方法:一個(gè)為淺復(fù)制 ,一個(gè)為深復(fù)制.
解釋:
淺復(fù)制(影子克隆):只復(fù)制對(duì)象的基本類型,對(duì)象類型,仍屬于原來(lái)的引用.
深復(fù)制(深度克隆):不緊復(fù)制對(duì)象的基本類,同時(shí)也復(fù)制原對(duì)象中的對(duì)象.就是說(shuō)完全是新對(duì)象產(chǎn)生的.
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
在實(shí)際編程過(guò)程中,我們常常要遇到這種情況:有一個(gè)對(duì)象A,在某一時(shí)刻A中已經(jīng)包含了一些有效值,此時(shí)可能會(huì)需要一個(gè)和A完全相同新對(duì)象B,并且此后對(duì)B任何改動(dòng)都不會(huì)影響到A中的值,也就是說(shuō),A與B是兩個(gè)獨(dú)立的對(duì)象,但B的初始值是由A對(duì)象確定的。在Java/javasript語(yǔ)言中,用簡(jiǎn)單的賦值語(yǔ)句是不能滿足這種需求的。要滿足這種需求雖然有很多途徑,但實(shí)現(xiàn)clone()方法是其中最簡(jiǎn)單,也是最高效的手段,當(dāng)然了 javascript語(yǔ)言中并沒(méi)有此方法.
所以我特意寫了兩個(gè)克隆方法:一個(gè)為淺復(fù)制 ,一個(gè)為深復(fù)制.
解釋:
淺復(fù)制(影子克隆):只復(fù)制對(duì)象的基本類型,對(duì)象類型,仍屬于原來(lái)的引用.
深復(fù)制(深度克隆):不緊復(fù)制對(duì)象的基本類,同時(shí)也復(fù)制原對(duì)象中的對(duì)象.就是說(shuō)完全是新對(duì)象產(chǎn)生的.
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
相關(guān)文章
Echarts圖表如何利用formatter自定義tooltip的內(nèi)容和樣式
這篇文章主要給大家介紹了關(guān)于Echarts圖表如何利用formatter自定義tooltip的內(nèi)容和樣式的相關(guān)資料,echarts的圖表配置非常的靈活自由,但是不熟悉的時(shí)候容易不知道怎么配置,需要的朋友可以參考下2023-06-06Uniapp全局消息提示以及其組件的實(shí)現(xiàn)方法
當(dāng)時(shí)在做登錄那邊需要做一些交互,所以必不可少要用到消息提示框,下面這篇文章主要給大家介紹了關(guān)于Uniapp全局消息提示以及其組件的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06webpack自動(dòng)打包功能實(shí)現(xiàn)
webpack是前端項(xiàng)目構(gòu)建工具打包工具,本文通過(guò)實(shí)例代碼給大家介紹webpack自動(dòng)打包功能實(shí)現(xiàn),感興趣的朋友跟隨小編一起看看吧2023-02-02js原生代碼實(shí)現(xiàn)輪播圖的實(shí)例講解
下面小編就為大家?guī)?lái)一篇js原生代碼實(shí)現(xiàn)輪播圖的實(shí)例講解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07js完美實(shí)現(xiàn)@提到好友特效(兼容各大瀏覽器)
本文給大家分享的是一則使用javascript完美實(shí)現(xiàn)兼容各大瀏覽器的@好友自動(dòng)提示的特效,是根據(jù)百度貼吧的效果模仿來(lái)的,推薦給小伙伴們,希望大家能夠喜歡。2015-03-03