Table of Contents:
  1. JavaScript高级属性之Object
    1. Object.getOwnPropertyDescriptor(obj, prop)
      1. 入参
      2. 返回
      3. 其它
    2. Object.defineProperty(obj, prop, descriptor)
      1. 入参
      2. 其它
    3. Object.defineProperties(obj, props)

    JavaScript高级属性之Object

    Reading Time:The full text has 391 words, estimated reading time: 2 minutes
    Creation Date:2022-04-27
    Article Tags:
    Next Article:NeoVim-安装
     
    BEGIN

    Object.getOwnPropertyDescriptor(obj, prop)

    用于获取对象属性的描述符(descriptor)的方法。描述符包括属性的可写性、可枚举性、可配置性等信息,该方法只返回对象其本身,不会获取原型链上的属性。

    入参

    • obj:要获取属性描述符的对象。
    • prop:要获取描述符的属性名。

    返回

    返回描述符(descriptor)对象

    value:属性的值。 writable:属性是否可写。 enumerable:属性是否可枚举。 configurable:属性是否可配置。 get:获取属性的方法(如果有 getter 的话)。 set:设置属性的方法(如果有 setter 的话)。

    其它

    MDN:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor 🔗

    Object.defineProperty(obj, prop, descriptor)

    用于获取对象属性的描述符(descriptor)的方法。描述符包括属性的可写性、可枚举性、可配置性等信息,该方法只返回对象其本身,不会获取原型链上的属性。

    入参

    • obj:要在其上定义属性的对象。
    • prop:要定义或修改的属性的名称。
    • descriptor:属性描述符对象,包含属性的特性。

    描述符(descriptor)对象:

    • value:属性的值。
    • writable:属性是否可写,默认为 false。
    • enumerable:属性是否可枚举,默认为 false。
    • configurable:属性是否可配置,默认为 false。
    • get:获取属性值的方法(getter)。
    • set:设置属性值的方法(setter)。

    其它

    MDN:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty 🔗

    Object.defineProperties(obj, props)

    作用与Object.defineProperty(obj, prop, descriptor)一样,但这个api处理的是多个属性的描述符的修改。

    如下面示例的作用是一样的:

    Object.defineProperty(window.navigator.webkitPersistentStorage, Symbol.toStringTag, {
        configurable: true,
        enumerable: false,
        writable: false,
        value: 'DeprecatedStorageQuota'
    });
    Object.defineProperties(window.navigator.webkitPersistentStorage, {
      [Symbol.toStringTag]: {
        configurable: true,
        enumerable: false,
        writable: false,
        value: 'DeprecatedStorageQuota'
      }
    })
    
    FINISH
    Next Article:NeoVim-安装

    Random Articles
    Life Countdown
    default