Object.getPrototypeOf()

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

Object.getPrototypeOf() 静态方法返回指定对象的原型(即内部 [[Prototype]] 属性的值)。

试一试

const prototype = {};
const object = Object.create(prototype);

console.log(Object.getPrototypeOf(object) === prototype);
// Expected output: true

语法

js
Object.getPrototypeOf(obj)

参数

obj

要返回其原型的对象。

返回值

给定对象的原型,可能为 null

示例

使用 getPrototypeOf

js
const proto = {};
const obj = Object.create(proto);
Object.getPrototypeOf(obj) === proto; // true

非对象强制转换

在 ES5 中,如果 obj 参数不是对象,它将抛出 TypeError 异常。在 ES2015 中,该参数将被强制转换为 Object

js
Object.getPrototypeOf("foo");
// TypeError: "foo" is not an object (ES5 code)
Object.getPrototypeOf("foo");
// String.prototype                  (ES2015 code)

规范

规范
ECMAScript® 2026 语言规范
# sec-object.getprototypeof

浏览器兼容性

另见