本文實(shí)例講述了JS引用傳遞與值傳遞的區(qū)別與用法。分享給大家供大家參考,具體如下:
站在用戶(hù)的角度思考問(wèn)題,與客戶(hù)深入溝通,找到巴州網(wǎng)站設(shè)計(jì)與巴州網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶(hù)體驗(yàn)好的作品,建站類(lèi)型包括:成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋巴州地區(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ì)有所幫助。
當(dāng)前題目:JS引用傳遞與值傳遞的區(qū)別與用法分析
當(dāng)前鏈接:http://chinadenli.net/article30/ppiiso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、關(guān)鍵詞優(yōu)化、品牌網(wǎng)站制作、網(wǎng)站設(shè)計(jì)公司、標(biāo)簽優(yōu)化、動(dòng)態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)