Object.defineProperty

1. Object.defineProperty(object, propertyName, descriptor)

   数据属性:

descriptor描述符对象属性:【这里的默认为true是对象字面量形式声明属性时,如果使用object.defineProperty则默认为false】
configurable: 表示这个对象的属性能否delete删除并重新定义,能否修改属性的特性,能否将数据【访问器】属性变为访问器【数据】属性,默认为true
enumerable: 能否被for...in...循环返回属性,默认为true
writable: 能否修改属性的value
value: 属性值

访问器属性:
descriptor描述符对象属性:
configurable
enumerable
getter()
setter()
    let obj = {
      name: 'twinkleG'
    };
    Object.defineProperty(obj, 'name', {
      configurable: true, // 表示这个对象的属性能否delete,默认为true
      enumerable: true, // 能否被for...in...循环返回属性,默认为true
      writable: true,
      value: 'hello'
    });
    console.log(obj.name) // hello

2. Object.defineProperties(object, {xxx}) 可以一次定义多个属性的特性

3. Object.getOwnPropertyDescriptor(object, propertyName) 获取给定属性的描述符

4. Object.getOwnPropertyDescriptors(object) 获取对象的所有属性的描述符对象



posted @ 2021-09-12 21:12  TwinkleG  Views(65)  Comments(0)    收藏  举报