欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

JS基本和引用數(shù)據(jù)深拷貝及淺拷貝的區(qū)別-創(chuàng)新互聯(lián)

本篇內(nèi)容主要講解“JS基本和引用數(shù)據(jù)深拷貝及淺拷貝的區(qū)別”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“JS基本和引用數(shù)據(jù)深拷貝及淺拷貝的區(qū)別”吧!

創(chuàng)新新互聯(lián),憑借十多年的成都做網(wǎng)站、成都網(wǎng)站建設(shè)經(jīng)驗(yàn),本著真心·誠(chéng)心服務(wù)的企業(yè)理念服務(wù)于成都中小企業(yè)設(shè)計(jì)網(wǎng)站有上千余家案例。做網(wǎng)站建設(shè),選成都創(chuàng)新互聯(lián)

淺拷貝

在定義一個(gè)對(duì)象或數(shù)組時(shí),變量存放的往往只是一個(gè)地址。當(dāng)我們使用對(duì)象拷貝時(shí),如果屬性是對(duì)象或數(shù)組時(shí),這時(shí)候我們傳遞的也只是一個(gè)地址。因此子對(duì)象在訪問該屬性時(shí),會(huì)根據(jù)地址回溯到父對(duì)象指向的堆內(nèi)存中,即父子對(duì)象發(fā)生了關(guān)聯(lián),兩者的屬性值會(huì)指向同一內(nèi)存空間。

但是若是修改的屬性變?yōu)閷?duì)象或數(shù)組時(shí),那么父子對(duì)象之間就發(fā)生關(guān)聯(lián)

原因是key1的值屬于基本類型,所以拷貝的時(shí)候傳遞的就是該數(shù)據(jù)段;但是key2的值是堆內(nèi)存中的對(duì)象,所以key2在拷貝的時(shí)候傳遞的是指向key2對(duì)象的地址,無論復(fù)制多少個(gè)key2,其值始終是指向父對(duì)象的key2對(duì)象的內(nèi)存空間。

深拷貝

或許以上并不是我們?cè)趯?shí)際編碼中想要的結(jié)果,我們不希望父子對(duì)象之間產(chǎn)生關(guān)聯(lián),那么這時(shí)候可以用到深拷貝。既然屬性值類型是數(shù)組和或象時(shí)只會(huì)傳址,那么我們就用遞歸來解決這個(gè)問題,把父對(duì)象中所有屬于對(duì)象的屬性類型都遍歷賦給子對(duì)象即可。

最后:總結(jié)基本數(shù)據(jù)類型和引用數(shù)據(jù)類型區(qū)別

聲明變量時(shí)內(nèi)存分配不同

*原始類型:在棧中,因?yàn)檎紦?jù)空間是固定的,可以將他們存在較小的內(nèi)存中-棧中,這樣便于迅速查詢變量的值

*引用類型:存在堆中,棧中存儲(chǔ)的變量,只是用來查找堆中的引用地址。

這是因?yàn)椋阂弥档拇笮?huì)改變,所以不能把它放在棧中,否則會(huì)降低變量查尋的速度。相反,放在變量的??臻g中的值是該對(duì)象存儲(chǔ)在堆中的地址。地址的大小是固定的,所以把它存儲(chǔ)在棧中對(duì)變量性能無任何負(fù)面影響

不同的內(nèi)存分配帶來不同的訪問機(jī)制

在javascript中是不允許直接訪問保存在堆內(nèi)存中的對(duì)象的,所以在訪問一個(gè)對(duì)象時(shí),首先得到的是這個(gè)對(duì)象在堆內(nèi)存中的地址,然后再按照這個(gè)地址去獲得這個(gè)對(duì)象中的值,這就是傳說中的按引用訪問。

而原始類型的值則是可以直接訪問到的。

復(fù)制變量時(shí)的不同

1)原始值:在將一個(gè)保存著原始值的變量復(fù)制給另一個(gè)變量時(shí),會(huì)將原始值的副本賦值給新變量,此后這兩個(gè)變量是完全獨(dú)立的,他們只是擁有相同的value而已。

2)引用值:在將一個(gè)保存著對(duì)象內(nèi)存地址的變量復(fù)制給另一個(gè)變量時(shí),會(huì)把這個(gè)內(nèi)存地址賦值給新變量,

也就是說這兩個(gè)變量都指向了堆內(nèi)存中的同一個(gè)對(duì)象,他們中任何一個(gè)作出的改變都會(huì)反映在另一個(gè)身上。

參數(shù)傳遞的不同

首先我們應(yīng)該明確一點(diǎn):ECMAScript中所有函數(shù)的參數(shù)都是按值來傳遞的。

但是為什么涉及到原始類型與引用類型的值時(shí)仍然有區(qū)別呢?還不就是因?yàn)閮?nèi)存分配時(shí)的差別。

1)原始值:只是把變量里的值傳遞給參數(shù),之后參數(shù)和這個(gè)變量互不影響。

2)引用值:對(duì)象變量它里面的值是這個(gè)對(duì)象在堆內(nèi)存中的內(nèi)存地址,這一點(diǎn)你要時(shí)刻銘記在心!

因此它傳遞的值也就是這個(gè)內(nèi)存地址,這也就是為什么函數(shù)內(nèi)部對(duì)這個(gè)參數(shù)的修改會(huì)體現(xiàn)在外部的原因了,因?yàn)樗鼈兌贾赶蛲粋€(gè)對(duì)象。

到此,相信大家對(duì)“JS基本和引用數(shù)據(jù)深拷貝及淺拷貝的區(qū)別”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)建站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

文章名稱:JS基本和引用數(shù)據(jù)深拷貝及淺拷貝的區(qū)別-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://aaarwkj.com/article34/iddpe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、軟件開發(fā)外貿(mào)網(wǎng)站建設(shè)、虛擬主機(jī)、自適應(yīng)網(wǎng)站、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)
亚洲欧美精品成人一区| 中文字幕丝袜精品久久| 亚洲最色最黄大片在线视频| 亚洲乱码日韩电影网站| av天堂网站在线观看| 97色伦综合在线欧美| 亚洲香蕉一区二区免费| 婷婷国产综合一区二区三区| 国产精品亚洲精品日韩在线| 欧美日韩亚洲精品三级| 嫩草网站国产精品一区二| 久久热久久热在线视频| 自拍日韩亚洲一区在线| 九九九热在线免费视频| 亚洲午夜一区二区三区精品| 中文字幕亚洲精品熟女少妇| 91免费视频精品麻豆| 国产精品三级一区二区三区| 一区二区三区一级黄色| 啄木乌法国一区二区三区| 亚洲精品在线免费av| 午夜日韩综合激情视频在线观看| 亚洲精品二区在线播放| 欧美黄片高清免费播放| 国产精品对白久久久久粗| 中文字幕日韩欧美一区二区| 国产午夜草莓视频在线观看| 韩国久久久久三级成人| 成人性生活三级黄色片| 九九视频666免费| 亚洲欧洲美洲中文天堂| 国产老熟女高潮视频| 宅男午夜一区二区三区| 免费的一区二区中文字幕| 精品日韩欧美在线观看91| 亚洲国产天堂久久综合| 国产av人妻精品一区二| 亚洲av乱码国产精品观看| 国产91九色视频在线| 青青草老司机在线视频| 中文字幕日韩手机在线|