您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(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)把它分享出去讓更多的人看到。
免責(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)容。