Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么getOwnPropertyDescriptor是在Object上定义的,而不是在Object.prototype上定义的?_Javascript - Fatal编程技术网

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()之类的内容
也接受一个对象,但在实例上不可用。但是如果你想知道为什么会有这种差异……我想语言设计师必须插话说明实例和静态方法之间分离的确切原因。相关: