【问题标题】:Why getOwnPropertyDescriptor is defined on Object and not on Object.prototype? [duplicate]为什么 getOwnPropertyDescriptor 是在 Object 而不是 Object.prototype 上定义的? [复制]
【发布时间】:2019-08-26 04:58:28
【问题描述】:

我可以看到Object 上定义的一些方法和Object.prototype 上定义的一些方法。对于一些人来说,我理解原因,但对于少数人来说,我没有得到背后的理由。为什么getOwnPropertyDescriptor 定义在Object 而不是Object.prototype

【问题讨论】:

  • 直接的答案是“因为getOwnPropertyDescriptor 不适用于实例,您必须将对象传递给它”。如果你想知道为什么决定走那条路,那么也许我们可以指出像 Object.keys() 这样的东西,它也接受一个对象,但在实例上不可用。但是,如果您想知道为什么会有所不同...我想语言设计者将不得不解释实例方法和静态方法之间存在分歧的确切原因。

标签: javascript


【解决方案1】:

Object.getOwnPropertyDescriptor 方法允许查询有关属性的完整信息并返回自己属性的属性描述符(即直接存在于对象上而不是对象的原型链中的属性描述符) ) 的给定对象。

作为 Object 原型,对象从原型继承属性和方法。

并以类似的方式工作,但添加/更新属性到对象

更为通用

【讨论】:

    猜你喜欢
    • 2015-01-13
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    • 2011-01-12
    • 2018-10-29
    • 2016-04-02
    • 2014-10-30
    • 1970-01-01
    相关资源
    最近更新 更多