Reflect

Это экспериментальная технология, часть предложения Harmony (ECMAScript 6).
Поскольку спецификация этой технологии ещё не стабилизировалась, проверьте таблицу совместимости её использования в различных браузерах. Также обратите внимание, что синтаксис и поведение экспериментальной технологии могут быть изменены в будущих версиях браузеров в соответствии с изменениями в спецификации.

Reflect - это встроенный объект, который предоставляет методы для перехватывания JavaScript операций. Эти методы аналогичны методам proxy handler`ов. Reflect - это не функциональный, а простой объект, он не является сконструированным.

Описание

В отличие от большинства глобальных объектов, Reflect - это не конструктор. Вы не можете использовать его с оператором new или вызывать Reflect, как функцию. Все свойства и методы объекта Reflect являются статическими (так же, как и у объекта Math).

Методы

Объект Reflect обеспечивает работу статических функций, называющиеся так же, как методы proxy handler`а. Некоторые из этих методов - те же, что и соответствующие им методы класса Object.

Reflect.apply()
Вызывает целевую функцию с аргументами, переданными в параметре args. См. так же Function.prototype.apply().
Reflect.construct()
 Оператор new как функция. Аналогично new target(...args).
Reflect.defineProperty()
Похож на Object.defineProperty(). Возвращает Boolean.
Reflect.deleteProperty()
Оператор delete как функция. Аналогично delete target[name].
Reflect.enumerate()
Подобно циклу for...in. Возвращает итератор с собственными перечисляемыми и наследованными свойствами целевого объекта.
Reflect.get()
Функция, которая возвращает значение свойств.
Reflect.getOwnPropertyDescriptor()
Аналогично Object.getOwnPropertyDescriptor(). Возвращает дескриптор указанного свойства если присутствует в объекте, иначе undefined.
Reflect.getPrototypeOf()
Аналогично Object.getPrototypeOf().
Reflect.has()
Оператор in как функция. Возвращает значение Boolean в зависимости от факта наличия собственного или наследованного свойства.
Reflect.isExtensible()
Аналогично Object.isExtensible().
Reflect.ownKeys()
Возвращает массив строк с именами собственных (не наследованных) свойств.
Reflect.preventExtensions()
Аналогично Object.preventExtensions(). Возвращает Boolean.
Reflect.set()
Функция, присваивающая значения свойствам. Возвращает Boolean значение true при успешном выполнении.
Reflect.setPrototypeOf()
Функция, присваивающая прототип целевому объекту.

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

Спецификация Статус Комментарий
ECMAScript 2015 (6th Edition, ECMA-262)
Определение 'Reflect' в этой спецификации.
Стандарт Изначальное определение.

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

Возможность Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Базовая поддержка 44 (Да) 42 (42) Нет Нет Нет
Возможность Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Базовая поддержка Нет Нет 42.0 (42) Нет Нет Нет

Смотрите также

  • Глобальный объект Proxy.
  • Объект handler.

Метки документа и участники

 Внесли вклад в эту страницу: Synthesize, rajdee, C`est la vie
 Обновлялась последний раз: Synthesize,