JS引用傳遞與值傳遞的區(qū)別與用法分析
本文實(shí)例講述了JS引用傳遞與值傳遞的區(qū)別與用法。分享給大家供大家參考,具體如下:
這里詳細(xì)解釋JS值傳遞和引用傳遞以及二者的區(qū)別。
我們先來(lái)解釋一下這兩個(gè)的基本概念吧。
函數(shù)調(diào)用中,傳遞是一個(gè)數(shù)值,我們稱(chēng)為 “值傳遞”。
函數(shù)調(diào)用中,傳遞是對(duì)象,一般稱(chēng)為 “引用傳遞”。
現(xiàn)在這里總體上說(shuō)明,這二者的本質(zhì)區(qū)別就在于傳遞的數(shù)據(jù)類(lèi)型不一樣,值傳遞傳遞的是一個(gè)值,而引用傳遞傳遞的是一個(gè)對(duì)象。
看一下代碼以及代碼中的注釋。
一、引入
function func(a)
{
a++;
}
// 因?yàn)楹瘮?shù)都沒(méi)有調(diào)用,所以找不到 a
console.log(a);
//結(jié)果明顯是undefined了。
//所以看下面兩個(gè)例子。
二、值傳遞
var a = 5;
function func(a)
{
// 函數(shù)中開(kāi)辟了一個(gè)空間 a == 5
// a==6
a++;
}
func(5);
// 結(jié)果,函數(shù)沒(méi)有改變到 外部 a 的值,所以,結(jié)果是 5
console.log(a);
// 函數(shù)調(diào)用中,傳遞是一個(gè)數(shù)值,我們稱(chēng)為 “值傳遞”
// 特點(diǎn): 有多個(gè)不同的空間,空間都是在棧中的
// 所以 修改函數(shù)中的空間,對(duì)外部空間是沒(méi)有影響的
三、引用傳遞
var a = 5;
function func()
{
// 開(kāi)辟函數(shù) 的空間
// 函數(shù)中沒(méi)有 a 的空間
// 所以,系統(tǒng)會(huì)自動(dòng)向外面搜索
// 這里是對(duì)外部的變量進(jìn)行修改
a++;
}
func(5);
// 因?yàn)楹瘮?shù)中修改了外部的變量 a,所以,值發(fā)生改變了,是 6
console.log(a);
// 函數(shù)調(diào)用中,傳遞是對(duì)象,一般稱(chēng)為 “引用傳遞”
// 特點(diǎn): 實(shí)在存數(shù)據(jù)的空間只有一份
詳細(xì)的說(shuō)明我都在代碼中注釋說(shuō)明了,歡迎指點(diǎn)指點(diǎn)指正。
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《javascript面向?qū)ο笕腴T(mén)教程》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章
Javascript遍歷Html Table示例(包括內(nèi)容和屬性值)
這篇文章主要介紹了Javascript如何遍歷Html Table(包括內(nèi)容和屬性值),需要的朋友可以參考下2014-07-07
JavaScript?雙位非運(yùn)算(~~?操作符)使用場(chǎng)景實(shí)例探索
本文為大家介紹JavaScript中雙位非運(yùn)算?~~,?~~?操作符是一個(gè)強(qiáng)大且經(jīng)常被忽視的特性,它提供了一種快速、簡(jiǎn)潔的方式來(lái)處理數(shù)字和執(zhí)行類(lèi)型轉(zhuǎn)換,通??梢员挥糜跀?shù)學(xué)計(jì)算和類(lèi)型轉(zhuǎn)換,我們先了解一下?~~?的基本概念和它的一些應(yīng)用場(chǎng)景2024-01-01
如何使用uniapp開(kāi)發(fā)微信小程序獲取當(dāng)前位置詳解
uni-app小程序項(xiàng)目無(wú)法直接獲取到地理位置,只能通過(guò)獲取到的經(jīng)緯度,調(diào)用第三方地圖Api獲取,下面這篇文章主要給大家介紹了關(guān)于如何使用uniapp開(kāi)發(fā)微信小程序獲取當(dāng)前位置的相關(guān)資料,需要的朋友可以參考下2022-10-10
element-ui 通過(guò)按鈕式觸發(fā)日期選擇器
ElementUI是Vue.js的一套組件庫(kù),其日期時(shí)間選擇器默認(rèn)是通過(guò)點(diǎn)擊輸入框來(lái)觸發(fā),本文介紹了如何自定義觸發(fā)日期選擇器,同時(shí)隱藏輸入框,通過(guò)編寫(xiě)一個(gè)自定義組件CustomDatePicker.vue,可以實(shí)現(xiàn)點(diǎn)擊按鈕來(lái)觸發(fā)日期選擇器2024-10-10

