對象

屬性類型

1、數(shù)據(jù)屬性

  • value:就是屬性的值。
  • writable:決定屬性能否被賦值。
  • enumerable:決定 for in 能否枚舉該屬性。
  • configurable:決定該屬性能否被刪除或者改變特征值。
function fn () {}
fn.a = 1
Object.defineProperty(fn, 'b', {value: 2, writable: false, enumerable: false, configurable: true});
console.log(Object.getOwnPropertyDescriptor(fn, 'a'))  // {value: 1, writable: true, enumerable: true, configurable: true}
console.log(Object.getOwnPropertyDescriptor(fn, 'b')) // {value: 2, writable: false, enumerable: false, configurable: true}
fn.b = 10000
console.log(fn.b) // 2

2、訪問器(getter/setter)屬性

  • getter:在取屬性值時被調(diào)用的,默認值undefined
  • setter:在設(shè)置屬性值時被調(diào)用的函數(shù),默認值undefined
  • enumerable:決定 for in 能否枚舉該屬性。
  • configurable:決定該屬性能否被刪除或者改變特征值。
var fn = {}
Object.defineProperty(fn, 'b', {
    get: function() {
        console.log('get b', this._b)
        return this._b
    },
    set: function(newVal) {
        console.log('set b', newVal)
        this._b = newVal
    },
    enumerable: true, configurable: true
});
fn.b = 22 // set b 22
console.log(fn.b) // 22
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容