Spec-Zone.ru › JavaScript

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

Спецификации

Спецификация
Спецификация языка ECMAScript® 2027
# sec-reflect.getprototypeof

Совместимость с браузерами

Настольные компьютеры Мобильные устройства Сервер
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.getPrototypeOf in core-js
  • es-shims polyfill of Reflect.getPrototypeOf
  • Reflect
  • Object.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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API