Reflect.getPrototypeOf()
Reflect.getPrototypeOf()
静态方法与 Object.getPrototypeOf()
类似。它返回指定对象的原型。
¥The Reflect.getPrototypeOf()
static method is like Object.getPrototypeOf()
. It returns the prototype of the specified object.
Try it
语法
参数
返回值
例外情况
描述
¥Description
Reflect.getPrototypeOf()
提供了检索对象原型的反射语义。与 Object.getPrototypeOf()
的唯一区别是非对象目标的处理方式。如果目标不是对象,则 Reflect.getPrototypeOf()
抛出 TypeError
,而 Object.getPrototypeOf()
将其强制为对象。
¥Reflect.getPrototypeOf()
provides the reflective semantic of retrieving the prototype of an object. The only difference with Object.getPrototypeOf()
is how non-object targets are handled. Reflect.getPrototypeOf()
throws a TypeError
if the target is not an object, while Object.getPrototypeOf()
coerces it to an object.
Reflect.getPrototypeOf()
调用 target
的 [[GetPrototypeOf]]
对象内部方法。
¥Reflect.getPrototypeOf()
invokes the [[GetPrototypeOf]]
object internal method of target
.
示例
使用 Reflect.getPrototypeOf()
与 Object.getPrototypeOf() 的区别
¥Difference with Object.getPrototypeOf()
// Same result for Objects
Object.getPrototypeOf({}); // Object.prototype
Reflect.getPrototypeOf({}); // Object.prototype
// Both throw in ES5 for non-Objects
Object.getPrototypeOf("foo"); // Throws TypeError
Reflect.getPrototypeOf("foo"); // Throws TypeError
// In ES2015 only Reflect throws, Object coerces non-Objects
Object.getPrototypeOf("foo"); // String.prototype
Reflect.getPrototypeOf("foo"); // Throws TypeError
// To mimic the Object ES2015 behavior you need to coerce
Reflect.getPrototypeOf(Object("foo")); // String.prototype
规范
Specification |
---|
ECMAScript Language Specification # sec-reflect.getprototypeof |
浏览器兼容性
BCD tables only load in the browser