Reflect.getPrototypeOf()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.
静态方法 Reflect.getPrototypeOf()
与 Object.getPrototypeOf()
方法几乎是一样的。都是返回指定对象的原型(即内部的 [[Prototype]]
属性的值)。
尝试一下
语法
Reflect.getPrototypeOf(target)
参数
target
-
获取原型的目标对象。
返回值
给定对象的原型。如果给定对象没有继承的属性,则返回 null
。
异常
描述
Reflect.getPrototypeOf
返回指定对象的原型 (即内部的 [[Prototype]]
属性的值) 。
示例
使用 Reflect.getPrototypeOf()
js
Reflect.getPrototypeOf({}); // Object.prototype
Reflect.getPrototypeOf(Object.prototype); // null
Reflect.getPrototypeOf(Object.create(null)); // null
与 Object.getPrototypeOf()
比较
// 如果参数为 Object,返回结果相同 Object.getPrototypeOf({}) // Object.prototype Reflect.getPrototypeOf({}) // Object.prototype // 在 ES5 规范下,对于非 Object,抛异常 Object.getPrototypeOf('foo') // Throws TypeError Reflect.getPrototypeOf('foo') // Throws TypeError // 在 ES2015 规范下,Reflect 抛异常,Object 强制转换非 Object Object.getPrototypeOf('foo') // String.prototype Reflect.getPrototypeOf('foo') // Throws TypeError // 如果想要模拟 Object 在 ES2015 规范下的表现,需要强制类型转换 Reflect.getPrototypeOf(Object('foo')) // String.prototype
规范
Specification |
---|
ECMAScript Language Specification # sec-reflect.getprototypeof |
浏览器兼容性
BCD tables only load in the browser