我一直在阅读关于JavaScript原型链的相关资料,据我所知,有一个全局 Object.prototype
作为其他原型的基础,例如 Array.prototype
,可以成为另一个原型的基础。就像基于类的面向对象编程中的继承一样。这很好。
现在,我想检查并比较不同对象的原型。如果 Array
的原型是基于 Object.prototype
,那么我猜应该可以使用类似于 Array.prototype.prototype
的东西。但它是未定义的:
> Array.prototype.prototype
undefined
当我输入__proto__
而不是prototype
时,我得到:
> Array.__proto__
[Function: Empty]
> Object.__proto__
[Function: Empty]
> Array.__proto__.__proto__
{}
(控制台输出是来自nodejs的). 我有以下问题:
- 如何访问原型的“父原型”?
prototype
和__proto__
的区别是什么?
Array.prototype
本身是“与某个数组实例的__proto__
相同”,而不是它的原型。 - Bergi