Re: [問題] 為什麼無法在同一個物件裡讀取另一個屬性的值

作者: banana2014 (香蕉共和國)   2017-07-21 04:48:48
※ 引述《freeman371 (自由人371)》之銘言:
: 標題: [問題] 為什麼無法在同一個物件裡讀取另一個屬性的值
: 時間: Thu Jul 20 08:01:54 2017
:
: 程式碼如下:
:
: var f = {
: d: 123,
: e: this.d
: };
:
: 要如何在屬性e底下讀取同一個物件的屬性d的值呢?
:
: 亦即讓e的值也變得跟d一樣是123
:
: 我用this.d和f.d都無效
為什麼會沒辦法讀取同一物件下的屬性值呢?
原因很簡單,因為物件f在你要賦予e值的時候尚未被定義
也就是在給屬性e值的時候 外面這個f「還在定義中」,當然這時候這個物件f就是undefined啦~
如果要在屬性e底下讀取同一個物件的屬性d的值,可以用物件方法(Method)來實現
所以改寫之後會變成:
var f = {
d: 123,
e: function(){
return this.d;
}
};
到時候只要寫成f.e()就能回傳f.d的值了,也就是數字123
:
:
作者: nottt (無)   2017-07-21 07:06:00
解說好詳細,推一下
作者: akccakcctw (947)   2017-07-21 12:40:00
推推,我忘記按f5了,難怪可以XDDD
作者: ilovekebi   2017-07-21 13:56:00
推解說詳細~
作者: bug9 (景依舊人不在)   2017-07-23 10:31:00
推!!

Links booklink

Contact Us: admin [ a t ] ucptt.com