object.getprototypeof 返回实例的直接原型对象,即构造函数的 prototype 属性所指对象;对 class a {},object.getprototypeof(new a()) === a.prototype 为 true;继承时可沿原型链向上追溯,且与 instanceof、isprototypeof 底层一致。

Object.getPrototypeOf 在 ES6 类中返回该实例的原型对象,即类的 prototype 属性所指向的对象,而不是类本身。
它返回的是构造函数的 prototype 对象
ES6 类本质仍是基于原型的函数对象(尽管语法更简洁)。当你用 class 定义一个类,JavaScript 会创建一个构造函数,并把方法定义在它的 prototype 上。调用 Object.getPrototypeOf(instance),实际拿到的就是这个 prototype 对象。
- 例如:
class A {},则Object.getPrototypeOf(new A()) === A.prototype为true - 这和
function A() {}的行为完全一致,类只是语法糖
不能直接获取类的“静态原型”或类本身
类本身是一个函数对象,它也有自己的原型(Function.prototype),但 Object.getPrototypeOf(A) 返回的是函数的原型,不是类定义中声明的实例方法所在的地方。想查类的实例方法在哪,必须查实例的原型,而不是类本身。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
-
Object.getPrototypeOf(A) === Function.prototype(因为类是函数) -
Object.getPrototypeOf(new A()) === A.prototype(这才是实例继承链的起点)
支持原型链向上追溯
如果类继承自另一个类,Object.getPrototypeOf 仍遵循原型链规则:它只返回直接原型,但你可以连续调用多次来向上遍历。
-
class B extends A {}→Object.getPrototypeOf(new B()) === B.prototype -
Object.getPrototypeOf(B.prototype) === A.prototype(因为B.prototype.__proto__指向A.prototype) - 这也意味着
new B()可以访问A.prototype上的方法
与 instanceof 和 isPrototypeOf 的关系一致
它的行为和 instanceof、prototype.isPrototypeOf() 是底层一致的,都依赖内部的 [[Prototype]] 链。
-
new A() instanceof A为true,是因为A.prototype在实例的原型链上 -
A.prototype.isPrototypeOf(new A())同样为true - 而
Object.getPrototypeOf(new A())就是那个被检查的A.prototype
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










