Object.defineProperty的功能就是在现有的属性进行修改或添加

let Person ={}
Person.name = 'Tom'

等于

let Person = {}
Object.defineProperty(Person, 'name',{
        value: 'jack',
        configurable: false,
        writable: true,
        enumerable: false
})
Person.name = 'Tom'

不同的是,

configurable属性 默认false  ,当是true的时候 name属性才能删除 

writable属性 默认 false , 当是true的时候 name属性才允许修改

enumeravle属性默认 false, 当是true的时候 该属性可枚举

 

 Object.defineProperty的存取描述符  get set

get属性是在属性读取的时候的函数

set属性是在属性写入的时候调用的函数

 

数据描述符和存取描述符一些不能同时存在

如 value 和 wriable 与 get set 不能同时存在

posted on 2021-05-25 01:10  一杯咖啡钱  阅读(16)  评论(0编辑  收藏  举报