第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

js高程中第71頁中的例子(關(guān)于傳遞參數(shù)的引用類型值的傳遞),兩個(gè)小問題理解不來

js高程中第71頁中的例子(關(guān)于傳遞參數(shù)的引用類型值的傳遞),兩個(gè)小問題理解不來

繁華開滿天機(jī) 2019-02-13 17:15:20
舉一個(gè)例子:function setName(obj) {obj.name = "Nicholas";}var person = new Object();setName(person);alert(person.name); //"Nicholas"FunctionArgumentsExample02.htm以上代碼中創(chuàng)建一個(gè)對象,并將其保存在了變量 person 中。然后,這個(gè)變量被傳遞到 setName()函數(shù)中之后就被復(fù)制給了 obj 。在這個(gè)函數(shù)內(nèi)部, obj 和 person 引用的是同一個(gè)對象。**換句話說,即使這個(gè)變量是按值傳遞的, obj 也會(huì)按引用來訪問同一個(gè)對象。---問題1:這里說的按值傳遞,這個(gè)值是指什么?**于是,當(dāng)在函數(shù)內(nèi)部為 obj 添加 name屬性后,函數(shù)外部的 person 也將有所反映;因?yàn)?person 指向的對象在堆內(nèi)存中只有一個(gè),而且是全局對象。有很多開發(fā)人員錯(cuò)誤地認(rèn)為:在局部作用域中修改的對象會(huì)在全局作用域中反映出來,就說明參數(shù)是按引用傳遞的。為了證明對象是按值傳遞的,我們再看一看下面這個(gè)經(jīng)過修改的例子:這個(gè)例子與前一個(gè)例子的唯一區(qū)別,就是在 setName() 函數(shù)中添加了兩行代碼:一行代碼為 obj重新定義了一個(gè)對象,另一行代碼為該對象定義了一個(gè)帶有不同值的 name 屬性。**在把 person 傳遞給setName() 后,其 name 屬性被設(shè)置為 "Nicholas" 。---問題二:屬性被修改后能在函數(shù)外部讀取到,不就是引用類型嘛?后面的解釋理解不了**然后,又將一個(gè)新對象賦給變量 obj ,同時(shí)將其 name屬性設(shè)置為 "Greg" 。如果 person 是按引用傳遞的,那么 person 就會(huì)自動(dòng)被修改為指向其 name 屬性值為 "Greg" 的新對象。但是,當(dāng)接下來再訪問 person.name 時(shí),顯示的值仍然是 "Nicholas" 。這說明即使在函數(shù)內(nèi)部修改了參數(shù)的值,但原始的引用仍然保持未變。實(shí)際上,當(dāng)在函數(shù)內(nèi)部重寫 obj 時(shí),這個(gè)變量引用的就是一個(gè)局部對象了。而這個(gè)局部對象會(huì)在函數(shù)執(zhí)行完畢后立即被銷毀。
查看完整描述

2 回答

?
Cats萌萌

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊

的確這里不太像是一般理解中的按值傳遞。

其實(shí)這里高程的例子已經(jīng)講的不錯(cuò)了,引用類型傳入時(shí)候會(huì)創(chuàng)建一個(gè)新的同樣的對象并且賦值給形參。

類似于創(chuàng)建了一個(gè)新的地址,指針指向了實(shí)參地址,于是這個(gè)時(shí)候修改形參變量能夠同步修改到實(shí)參,但是如果重新賦值形參,則是修改了其指針指向,不再指向?qū)崊⒌刂贰?/p>


查看完整回答
反對 回復(fù) 2019-02-26
?
素胚勾勒不出你

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個(gè)贊

怕我說不清,找了個(gè)鏈接深入理解參數(shù)按值傳遞
簡單的總結(jié):

參數(shù)如果是基本類型是按值傳遞,如果是引用類型按共享傳遞。

但是因?yàn)榭截惛北疽彩且环N值的拷貝,所以在高程中也直接認(rèn)為是按值傳遞了


查看完整回答
反對 回復(fù) 2019-02-26
  • 2 回答
  • 0 關(guān)注
  • 470 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)