天天看點

getter和setter以及defineProperty的用法

getter:将對象屬性綁定到查詢該屬性時将被調用的函數

說人話就是,當你調用一個getter屬性時會調用定義好的get函數,這個函數會傳回一些運算結果的值(一般是用其他屬性作為運算值),這個值就作為你調用的這個屬性的值。

setter: 當嘗試設定屬性時,set文法将對象屬性綁定到要調用的函數

說人話就是,當你設定一個setter屬性的值時會調用定義好的set函數(可以傳入參數),這個函數會将這個對象的其他屬性設定為傳入的參數計算過後的值。

使用defineProperty在現有對象上定義getter:

要随時将getter添加到現有對象上,使用Object.defineProperty()

使用defineProperty為目前對象定義setter