【问题标题】:What is a descriptor? [closed]什么是描述符? [关闭]
【发布时间】:2012-02-06 20:59:28
【问题描述】:

方法Object.defineProperty(参见here)接受“描述符”作为第三个参数。

什么是描述符?

【问题讨论】:

  • 就在“Description”标题下:“A property descriptor is...”。
  • 你提供的链接似乎在A property descriptor is an object with the following fields:的部分下提供了一个很好的定义
  • 我投票赞成这个问题和接受的答案,这比 MDN 上的复杂解释更容易理解

标签: javascript


【解决方案1】:

属性描述符可以有两种类型:数据描述符或访问器描述符。

数据描述符

强制属性:

  • value

可选属性:

  • configurable
  • enumerable
  • writable

示例:

{
    value: 5,
    writable: true
}

访问器描述符

强制属性:

  • getset 或两者兼有

可选属性:

  • configurable
  • enumerable

示例:

{
    get: function () {
        return 5;
    },
    enumerable: true
}

【讨论】:

  • 不必为数据描述符定义value属性。如果不设置任何值,它将被初始化为undefined。我还发现如果您使用 Object.defineProperty() 创建描述符,所有未定义的特征将默认为 false 但如果您使用文字方式(点/括号表示法或通过对象文字定义)在这两种情况下,这很有价值,其他特征为true
【解决方案2】:

描述符是描述某物的东西。在这种情况下,它只是一个带有某些字段的普通对象 ({...}),它描述了属性的行为方式。进一步阅读页面以了解您可以使用哪些字段。

【讨论】:

    猜你喜欢
    • 2017-10-25
    • 1970-01-01
    • 2015-06-08
    • 1970-01-01
    • 2017-04-13
    • 2017-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多