Javascript Object.getPrototypeOf(Object)和Object.prototype之间有什么区别?
为什么我会得到不同的结果?但如果我使用:Javascript Object.getPrototypeOf(Object)和Object.prototype之间有什么区别?,javascript,Javascript,为什么我会得到不同的结果?但如果我使用: >Object.getPrototypeOf(Object) [Function: Empty] >Object.prototype {} 一切都很好。是否有任何关于getPrototypeOf的地方我遗漏了???是所有其他对象从中继承的对象。它位于内置对象的根目录下。从MDN文档中: JavaScript中的所有对象都是对象的后代;所有对象都从Object.prototype继承方法和属性,尽管它们可能被重写[…] 是获取特定对象原型的
>Object.getPrototypeOf(Object)
[Function: Empty]
>Object.prototype
{}
一切都很好。是否有任何关于getPrototypeOf的地方我遗漏了???是所有其他对象从中继承的对象。它位于内置对象的根目录下。从MDN文档中:
JavaScript中的所有对象都是对象
的后代;所有对象都从Object.prototype
继承方法和属性,尽管它们可能被重写[…]
是获取特定对象原型的一种方便方法。从MDN文档中:
Object.getPrototypeOf()
方法返回指定对象的原型(即内部[[prototype]]]
)
不同类型的对象可以有不同的原型
示例:
>Object.getPrototypeOf({})
{}
对象
是一个函数,因此它的原型是函数。原型
> Object.getPrototypeOf(Object) === Function.prototype
true
> Object.getPrototypeOf(/foo/) === RegExp.prototype
true
> Object.getPrototypeOf([]) === Array.prototype
true
/foo/
创建一个正则表达式,因此它的原型是RegExp.prototype
> Object.getPrototypeOf(Object) === Function.prototype
true
> Object.getPrototypeOf(/foo/) === RegExp.prototype
true
> Object.getPrototypeOf([]) === Array.prototype
true
[]
创建一个数组,其原型是数组。原型
> Object.getPrototypeOf(Object) === Function.prototype
true
> Object.getPrototypeOf(/foo/) === RegExp.prototype
true
> Object.getPrototypeOf([]) === Array.prototype
true
{}
创建一个简单的对象,它的原型是对象。原型是所有其他对象继承的对象。它位于内置对象的根目录下。从MDN文档中:
> Object.getPrototypeOf(Object) === Function.prototype
true
> Object.getPrototypeOf(/foo/) === RegExp.prototype
true
> Object.getPrototypeOf([]) === Array.prototype
true
JavaScript中的所有对象都是对象
的后代;所有对象都从Object.prototype
继承方法和属性,尽管它们可能被重写[…]
是获取特定对象原型的一种方便方法。从MDN文档中:
Object.getPrototypeOf()
方法返回指定对象的原型(即内部[[prototype]]]
)
不同类型的对象可以有不同的原型
示例:
>Object.getPrototypeOf({})
{}
对象
是一个函数,因此它的原型是函数。原型
> Object.getPrototypeOf(Object) === Function.prototype
true
> Object.getPrototypeOf(/foo/) === RegExp.prototype
true
> Object.getPrototypeOf([]) === Array.prototype
true
/foo/
创建一个正则表达式,因此它的原型是RegExp.prototype
> Object.getPrototypeOf(Object) === Function.prototype
true
> Object.getPrototypeOf(/foo/) === RegExp.prototype
true
> Object.getPrototypeOf([]) === Array.prototype
true
[]
创建一个数组,其原型是数组。原型
> Object.getPrototypeOf(Object) === Function.prototype
true
> Object.getPrototypeOf(/foo/) === RegExp.prototype
true
> Object.getPrototypeOf([]) === Array.prototype
true
{}
创建一个简单的对象,它的原型是对象
> Object.getPrototypeOf(Object) === Function.prototype
true
> Object.getPrototypeOf(/foo/) === RegExp.prototype
true
> Object.getPrototypeOf([]) === Array.prototype
true
> Object.getPrototypeOf({}) === Object.prototype
true
尽管:
Object.getPrototypeOf(Object) === Function.prototype; // true
Object.getPrototypeOf(Object) === Object.prototype; // false
虽然Object.prototype和Function.prototype不同,但对象和函数的行为相同。
函数===其属性的内部[[prototype]],但对象的内部[[prototype]]不是其属性
看起来很奇怪(我没有看到任何其他类似的情况)
的确,对象是一个函数,数组也是,函数也是。所有这些都是“功能”。我们不应该说“对象是一级函数”吗?(而不是相反?只是开玩笑)我有一个类似的问题:为什么
> Object.getPrototypeOf({}) === Object.prototype
true
尽管:
Object.getPrototypeOf(Object) === Function.prototype; // true
Object.getPrototypeOf(Object) === Object.prototype; // false
虽然Object.prototype和Function.prototype不同,但对象和函数的行为相同。
函数===其属性的内部[[prototype]],但对象的内部[[prototype]]不是其属性
看起来很奇怪(我没有看到任何其他类似的情况)
的确,对象是一个函数,数组也是,函数也是。所有这些都是“功能”。我们不应该说“对象是一级函数”吗?(而不是相反?只是开玩笑)你没有真正解释你期望的结果,但我试图解释Object.getPrototypeOf(Object)
和Object.prototype
。你没有真正解释你期望的结果,但我试图解释Object.getPrototypeOf(Object)之间的区别
和对象.原型
。