Reflect.getPrototypeOf()
Базовый уровень Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в различных версиях браузеров. Она доступна во всех браузерах с сентября 2016 года.
Статический метод Reflect.getPrototypeOf() аналогичен Object.getPrototypeOf(). Он возвращает прототип указанного объекта.
Попробуйте
const object = {
foo: 42,
};
const proto = Reflect.getPrototypeOf(object);
console.log(proto);
// Expected output: Object { }
console.log(Reflect.getPrototypeOf(proto));
// Expected output: null
Синтаксис
Reflect.getPrototypeOf(target)
Параметры
-
target - Целевой объект, прототип которого необходимо получить.
Возвращаемое значение
Прототип данного объекта, который может быть объектом или null.
Исключения
-
TypeError - Выбрасывается, если
targetне является объектом.
Описание
Reflect.getPrototypeOf() обеспечивает семантику отражения для получения прототипа объекта. Единственное отличие от Object.getPrototypeOf() заключается в том, как обрабатываются не-объектные цели. Reflect.getPrototypeOf() выбрасывает TypeError, если цель не является объектом, в то время как Object.getPrototypeOf() преобразует ее в объект.
Reflect.getPrototypeOf() вызывает внутренний метод объекта [[GetPrototypeOf]] target.
Примеры
Использование Reflect.getPrototypeOf()
Reflect.getPrototypeOf({}); // Object.prototype
Reflect.getPrototypeOf(Object.prototype); // null
Reflect.getPrototypeOf(Object.create(null)); // null
Отличие от 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
Спецификации
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
getPrototypeOf |
49 |
12 |
42 |
36 |
10 |
49 |
42 |
36 |
10 |
5.0 |
49 |
10 |
1.0.0 |
1.0 |
6.0.0 |
См. также
- Polyfill of
Reflect.getPrototypeOfincore-js - es-shims polyfill of
Reflect.getPrototypeOf ReflectObject.getPrototypeOf()handler.getPrototypeOf()
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/getPrototypeOf