Javascript 为什么getOwnPropertyDescriptor是在Object上定义的,而不是在Object.prototype上定义的?
我可以看到在Javascript 为什么getOwnPropertyDescriptor是在Object上定义的,而不是在Object.prototype上定义的?,javascript,Javascript,我可以看到在Object上定义的一些方法,以及在Object.prototype上定义的一些方法。对一些人来说,我理解其中的原因,但对少数人来说,我不理解背后的理由。为什么getOwnPropertyDescriptor定义在对象上而不是对象上。prototype?对象。getOwnPropertyDescriptor方法允许查询有关属性的完整信息,并为自己的属性返回属性描述符(即,直接出现在对象上而不是对象的原型链中)给定对象的 其中,作为对象原型,对象从原型继承属性和方法 其工作方式与之类似
Object
上定义的一些方法,以及在Object.prototype
上定义的一些方法。对一些人来说,我理解其中的原因,但对少数人来说,我不理解背后的理由。为什么getOwnPropertyDescriptor
定义在对象上而不是对象上。prototype
?对象。getOwnPropertyDescriptor方法允许查询有关属性的完整信息,并为自己的属性返回属性描述符(即,直接出现在对象上而不是对象的原型链中)给定对象的
其中,作为对象原型,对象从原型继承属性和方法
其工作方式与之类似,但对对象添加/更新属性更为通用。直接答案是“因为getOwnPropertyDescriptor
无法在实例上工作,您必须将对象传递给它”。如果您想知道为什么决定走这条路线,那么我们可以指向Object.keys()之类的内容
也接受一个对象,但在实例上不可用。但是如果你想知道为什么会有这种差异……我想语言设计师必须插话说明实例和静态方法之间分离的确切原因。相关: