iT邦幫忙

0

javascript 中對 object set 跟 get 的疑問

這是某個課程中的一段範例 但不太明白為什麼會有這樣的結果
附上 codepen
https://codepen.io/UHU/pen/ExxOKey

如果 get 內設定 return this._name
在 line 19 更新 human.name 後
原先設定的預設值會被覆蓋並更新

但如果在 get 內設定 return 'string'
原先的預設值被覆蓋為 'string'
但是即使再度更新 human.name
被覆蓋為 'string' 的內容仍然不會被更新
這是為什麼呢?

2 個回答

2
小魚
iT邦大師 1 級 ‧ 2019-11-15 19:29:33
最佳解答

get是你取得的資料,
如果你永遠return 'string',
那你拿到的就永遠是 'string',
get 是取得,(SELECT)
set 是設定.(UPDATE)

dc88 iT邦新手 5 級 ‧ 2019-11-15 21:13:38 檢舉

了解!
感謝大大開示~

1
浩瀚星空
iT邦大師 1 級 ‧ 2019-11-15 20:47:12

認真來說,不就是變數跟固定值的區分了??

我不太明白你搞不明白的地方哪邊??

return 'string';

後面那個就只是單純的固定字串,又不是變數。
無論如何你也不可能去改變它。
因為它又不是變數。

但從你的話中,你用了覆蓋的用語。
認真來說。那不是覆蓋。只是根本沒用它的值。

說真的,真無法理解這樣的東西。那之後的私域變數應用。常數、變異數、怪怪數....
你要怎麼辦啊。

怎麼會被一個「字串」就搞定了???

dc88 iT邦新手 5 級 ‧ 2019-11-15 21:22:16 檢舉

謝謝大大解說
當下不了解的是,為什麼設定了物件的值,但 console 物件的屬性值卻沒有跟著更新
但您提到 只是沒有取用,就了解為何 console 不會出現設定的值了
因為 console 到的是 get 內的內容

能清楚問題就行。我知道某些人會突然被自已給搞死。一瞬間搞不清楚問題。
我說話比較直接。如有冒犯還請見諒。

dc88 iT邦新手 5 級 ‧ 2019-11-15 21:44:21 檢舉

不會的,非常感謝大大願意給予意見
畢竟只是新手,還有很多東西仍在學習中,過程裡難免會有自己犯蠢或誤解的時候囉~/images/emoticon/emoticon41.gif

我要發表回答

立即登入回答