※ 引述《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
:
: