真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

javascript中的值傳遞和引用傳遞的示例分析-創(chuàng)新互聯(lián)

這篇文章給大家分享的是有關(guān)javascript中的值傳遞和引用傳遞的示例分析的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國(guó)際域名空間、虛擬空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、電白網(wǎng)站維護(hù)、網(wǎng)站推廣。

值傳遞是針對(duì)基本類型的,而引用傳遞是針對(duì)引用類型的。傳參可以理解為:復(fù)制變量的值,把這個(gè)副本傳遞給形參。

基本類型復(fù)制后,形參與實(shí)參完全是獨(dú)立的,不管改變哪一個(gè),都不會(huì)對(duì)另一個(gè)產(chǎn)生影響。

引用傳遞本質(zhì)上還是傳值,具體的步驟是:1、先在棧中開(kāi)辟形參引用。2、把實(shí)參引用的值傳遞給形參引用。

1、值傳遞
function add(num) {
    num++;
    console.log("形參:", num);
}

var a = 20;
add(a);
console.log("實(shí)參:", a);

結(jié)果如下:

javascript中的值傳遞和引用傳遞的示例分析

根據(jù)結(jié)果分析:調(diào)用add(a),傳遞的實(shí)參a=20,把實(shí)參復(fù)制一份,把復(fù)制本傳遞給形參num,所以num++后并沒(méi)有影響實(shí)參a的值。

2、引用傳遞
function setNum(obj) {
    obj.num = 10;
    console.log("形參:", obj);
}

var a = new Object();
setNum(a);
console.log("實(shí)參:", a);

結(jié)果如下:

javascript中的值傳遞和引用傳遞的示例分析

當(dāng)var a = new Object();時(shí),下圖時(shí)變量和對(duì)象的關(guān)系:

javascript中的值傳遞和引用傳遞的示例分析

調(diào)用setNum(a);時(shí),下圖是全局變量a和局部變量obj以及對(duì)象Object的關(guān)系:

javascript中的值傳遞和引用傳遞的示例分析

這段代碼創(chuàng)建了一個(gè)Object對(duì)象,變量(引用)a指向這個(gè)Object對(duì)象。調(diào)用setNum(a),在這個(gè)函數(shù)內(nèi)部,obj和a都引用的是同一Object對(duì)象,即a和obj都指向同一個(gè)堆內(nèi)存地址。所以,通過(guò)傳遞實(shí)參引用a,對(duì)形參引用obj添加num屬性后,也影響到了實(shí)參引用a。所以,很多人就會(huì)被這種假象所蒙蔽,錯(cuò)誤的認(rèn)為:在局部作用域修改對(duì)象,會(huì)在全局對(duì)象中反映出來(lái),就說(shuō)明參數(shù)是引用傳遞。

所以,以下是我的進(jìn)一步分析:

function setNum(obj) {
    obj.num = 10;
    obj = new Object();
    obj.num = 20;
    console.log("形參:", obj);
}

var a = new Object();
setNum(a);
console.log("實(shí)參:", a);

結(jié)果如下:

javascript中的值傳遞和引用傳遞的示例分析

在函數(shù)內(nèi)部創(chuàng)建obj對(duì)象 obj = new Object(); 下圖是a和obj以及Object的關(guān)系:

javascript中的值傳遞和引用傳遞的示例分析

這段代碼在前一個(gè)的基礎(chǔ)上,給setNum()函數(shù)中添加了兩行代碼:obj = new Object()改變了obj的指向;obj.num = 20給新創(chuàng)建的obj添加屬性。根據(jù)結(jié)果來(lái)看,形參的改變并沒(méi)有影響到實(shí)參,所以,在JS中,引用傳遞的本質(zhì)就是值傳遞。

感謝各位的閱讀!關(guān)于“javascript中的值傳遞和引用傳遞的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!


名稱欄目:javascript中的值傳遞和引用傳遞的示例分析-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)URL:http://weahome.cn/article/cseieg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部