2 回答

TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊
JS函數(shù)傳參方法如下:
對(duì)于基本類型來說,其復(fù)制的是被復(fù)制變量在棧中的值,即創(chuàng)建了一個(gè)副本,對(duì)其中任何一個(gè)變量的改變都不會(huì)影響另外一個(gè)變量;對(duì)于引用類型來說,其復(fù)制的是被復(fù)制變量在棧中的值,但是這個(gè)值所存儲(chǔ)的是變量指向到堆中的對(duì)象的指針,即該對(duì)象所存儲(chǔ)的地址,復(fù)制后的變量雖然也是一個(gè)副本,但是卻指向了與被復(fù)制的變量的同一個(gè)在堆中的對(duì)象。對(duì)其中任何一個(gè)變量所做的改變都會(huì)影響都會(huì)影響另外一個(gè)變量。函數(shù)的傳參,js中所有函數(shù)的參數(shù)都是按值來傳遞的
實(shí)際上,這種傳參實(shí)際上做的就是把變量的值復(fù)制給函數(shù)內(nèi)部的臨時(shí)變量(這個(gè)臨時(shí)變量其實(shí)也有一個(gè)專門指向他們的數(shù)組,就是常用于模仿重載的arguments數(shù)組),所不同的就是對(duì)于基礎(chǔ)數(shù)據(jù)類型來說,復(fù)制的就是傳人參數(shù)在棧中的值,而引用類型復(fù)制的是參數(shù)在棧中的值,而這個(gè)值保存的是一個(gè)指向堆中地址的指針。
創(chuàng)建了另外一個(gè)對(duì)象,所做的任何的改變都不會(huì)影響帶另外一個(gè)對(duì)象,因?yàn)樗c參數(shù)所指向的對(duì)象是完成不同的對(duì)象。
- 2 回答
- 0 關(guān)注
- 918 瀏覽
添加回答
舉報(bào)