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

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

對象里面的屬性名為_year,使用defineProperty()方法的時(shí)候用的卻是“year”,十分疑惑

對象里面的屬性名為_year,使用defineProperty()方法的時(shí)候用的卻是“year”,十分疑惑

小佳佳QAQ 2015-12-17 10:46:24
代碼內(nèi)容出自《JavaScript高級程序設(shè)計(jì)(第三版)》141頁,講的是面向?qū)ο蟮某绦蛟O(shè)計(jì)
查看完整描述

3 回答

?
小佳佳QAQ

TA貢獻(xiàn)8條經(jīng)驗(yàn) 獲得超19個贊

書中有說明的(以下是原文):

訪問器屬性不包含數(shù)據(jù)值;它們包含一對兒 getter 和 setter 函數(shù)(不過,這兩個函數(shù)都不是必需的)。

在讀取訪問器屬性時(shí),會調(diào)用 getter 函數(shù),這個函數(shù)負(fù)責(zé)返回有效的值;在寫入訪問器屬性時(shí),會調(diào)用

setter 函數(shù)并傳入新值,這個函數(shù)負(fù)責(zé)決定如何處理數(shù)據(jù)。

訪問器屬性不包含數(shù)據(jù)值;它們包含一對兒 getter 和 setter 函數(shù)(不過,這兩個函數(shù)都不是必需的)。

在讀取訪問器屬性時(shí),會調(diào)用 getter 函數(shù),這個函數(shù)負(fù)責(zé)返回有效的值;在寫入訪問器屬性時(shí),會調(diào)用

setter 函數(shù)并傳入新值,這個函數(shù)負(fù)責(zé)決定如何處理數(shù)據(jù)。

訪問器屬性不能直接定義,必須使用 Object.defineProperty() 來定義。

_year 前面的下劃線是一種常用的記號,用于表示只能通過對象方法訪問的屬性。而訪問器屬性 year 則包含一個

getter 函數(shù)和一個 setter 函數(shù)。getter 函數(shù)返回 _year 的值,setter 函數(shù)通過計(jì)算來確定正確的版本。

我的理解:

_year是一個只能通過對象方法訪問的內(nèi)部屬性,用于存儲對象方法需要用到的值。

而訪問器屬性year通過Object.defineProperty() 來定義,本身不包含數(shù)據(jù)值,使用get和set讀取和設(shè)置對象中的屬性值,返回值。(year沒有在對象字面量中直接體現(xiàn))

_year≠year,_year是普通的屬性,只是前面添加了"_"表示其不能直接訪問;year是訪問器屬性,本身就沒有數(shù)值,主要的工作是定義出來操作_year和edition的值,它也可以訪問_year并直接返回_year存儲的內(nèi)容,比如它的get方法。

另外,書中的定義多個屬性O(shè)bject.defineProperties()恰好可以解釋_year和year是兩個不同的屬性,書中代碼如下:

var?book?=?{};
Object.defineProperties(book,?{
????_year:?{
????????value:?2004
????},
????edition:?{
????????value:?1
????},
????year:?{
????????get:?function(){
????????????return?this._year;
????????},
????????set:?function(newValue){
????????????if?(newValue?>?2004)?{
????????????????this._year?=?newValue;
????????????????this.edition?+=?newValue?-?2004;
????????????}
????????}
????}
});

以上代碼在 book 對象上定義了兩個數(shù)據(jù)屬性( _year 和 edition )和一個訪問器屬性( year )。

最終的對象與上一節(jié)中定義的對象相同。唯一的區(qū)別是這里的屬性都是在同一時(shí)間創(chuàng)建的。

以上內(nèi)容僅供參考。如有理解錯誤,請指出,不勝感激!

查看完整回答
1 反對 回復(fù) 2016-11-21
  • 葉微白_
    葉微白_
    對的,就是這樣,這個例子,是想說明對象內(nèi)部,當(dāng)賦值,修改值的時(shí)候,會發(fā)生~
?
李曉健

TA貢獻(xiàn)1036條經(jīng)驗(yàn) 獲得超461個贊

他這個_year 只是在內(nèi)部用的,其實(shí)對外用的是year ?他這樣做就相當(dāng)于給 book又添加了一個year屬性嘛 只不過你在取year值時(shí),他內(nèi)部去取的是_year的值,賦值時(shí)也是一樣,你賦給的是year ,他在內(nèi)部又把這個值賦給了_year

查看完整回答
反對 回復(fù) 2015-12-17
?
慕粉4229183

TA貢獻(xiàn)2條經(jīng)驗(yàn) 獲得超1個贊

? ?123

查看完整回答
反對 回復(fù) 2016-11-17
  • 3 回答
  • 0 關(guān)注
  • 1950 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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