溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

javascript復(fù)雜類型怎么傳參

發(fā)布時(shí)間:2021-09-09 17:20:53 來(lái)源:億速云 閱讀:174 作者:小新 欄目:編程語(yǔ)言

這篇文章將為大家詳細(xì)講解有關(guān)javascript復(fù)雜類型怎么傳參,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

說(shuō)明

1、在將實(shí)參傳遞給形參的過(guò)程中,復(fù)雜的數(shù)據(jù)類型傳遞給形參的是實(shí)參的地址,而非對(duì)象實(shí)例。

2、函數(shù)的形參也可以看作是一個(gè)變量。

當(dāng)我們將引用類型的變量傳遞給形參時(shí),我們實(shí)際上將變量保存在??臻g中的堆地址復(fù)制給形參。形參和實(shí)參實(shí)際上保存在同一個(gè)堆地址,所以操作的是同一個(gè)對(duì)象。

實(shí)例

    <script>
        function Person(name) {
            this.name = name;
        }
 
        function fun1(x) {
            // 8.由于形參 x 指向 地址p,因此輸出的仍然是 地址p 所對(duì)應(yīng)的對(duì)象實(shí)例{new Person('劉德華'); name = '劉德華'}
            // 9.第二個(gè)輸出:'劉德華'
            console.log(x.name);
            // 10.對(duì) x.name 進(jìn)行了重新的賦值,此時(shí)的對(duì)象實(shí)例改為{new Person('劉德華'); name = '張學(xué)友'}
            x.name = '張學(xué)友';
            // 11.第三個(gè)輸出:'張學(xué)友'
            console.log('2' + x.name);
        }
        // 1.定義一個(gè)復(fù)雜數(shù)據(jù)類型
        // 2.復(fù)雜數(shù)據(jù)類型 變量 p 在棧中存儲(chǔ) 地址p,變量 p 指向 地址p
        // 3.而真正的對(duì)象實(shí)例{new Person('劉德華'); name = '劉德華'}存放在堆中
        // 4.變量 p 指向棧中的地址p,地址p 指向堆中的對(duì)象實(shí)例{new Person('劉德華'); name = '劉德華'}
        var p = new Person('劉德華');
        // 5.第一個(gè)輸出:劉德華
        console.log(p.name);
        // 6.將變量 p 傳遞給形參 x,即將 地址p 傳遞給形參 x
        // 7.然后變量 p 和形參 x 都指向了同一個(gè)地址,即 地址p
        fun1(p);
        // 12.此時(shí) p.name 的對(duì)象實(shí)例為{new Person('劉德華'); name = '張學(xué)友'}
        // 13.第四個(gè)輸出:'張學(xué)友'
        console.log(p.name);
    </script>

關(guān)于“javascript復(fù)雜類型怎么傳參”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI