object.getprototypeof() 通过读取对象内部的 [[prototype]] 属性来获取原型对象。该方法是 es6 引入的标准 api,用于安全地访问这个内部链接,替代了非标准的 __proto__ 属性。调用时传入目标对象,直接返回其原型引用。

如何获取自定义构造函数的实例原型
对于使用构造函数创建的实例,Object.getPrototypeOf() 返回该构造函数的 prototype 属性指向的对象。这建立了实例与构造函数原型之间的直接联系,确保 instanceof 检查能正常工作。

function User(name) {
this.name = name;
}
const user = new User('Alice');
console.log(Object.getPrototypeOf(user) === User.prototype); // true
console.log(Object.getPrototypeOf(user).constructor === User); // true
如何处理 null 和原始值类型的原型获取
当输入为 null 时,方法会抛出 TypeError 异常,因为 null 没有原型链。对于原始值类型如字符串、数字,方法会自动将其包装为对应的对象实例,然后返回该包装对象的原型。这种行为确保了所有合法输入都能得到一致的处理结果。

try {
Object.getPrototypeOf(null);
} catch (e) {
console.log(e.message); // "null has no prototype"
}
const str = 'hello';
console.log(Object.getPrototypeOf(str) === String.prototype); // true
const num = 42;
console.log(Object.getPrototypeOf(num) === Number.prototype); // true
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











