This translation is incomplete. Please help translate this article from English.
Это экспериментальная технология, часть предложения 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()- The
newoperator as a function. Equivalent to callingnew target(...args). Reflect.defineProperty()- Similar to
Object.defineProperty(). Returns aBoolean. Reflect.deleteProperty()- The
deleteoperator as a function. Equivalent to callingdelete target[name]. Reflect.enumerate()- Like the
for...inloop. Returns an iterator with the enumerable own and inherited properties of the target object. Reflect.get()- A function that returns the value of properties.
Reflect.getOwnPropertyDescriptor()- Similar to
Object.getOwnPropertyDescriptor(). Returns a property descriptor of the given property if it exists on the object,undefinedotherwise. Reflect.getPrototypeOf()- Same as
Object.getPrototypeOf(). Reflect.has()- The
inoperator as function. Returns a boolean indicating whether an own or inherited property exists. Reflect.isExtensible()- Same as
Object.isExtensible(). Reflect.ownKeys()- Returns an array of strings with own (not inherited) property keys.
Reflect.preventExtensions()- Similar to
Object.preventExtensions(). Returns aBoolean. Reflect.set()- A function that assigns values to properties. Returns a
Booleanthat istrueif the update was successful. Reflect.setPrototypeOf()- A function that sets the prototype of an object.
Specifications
| Specification | Status | Comment |
|---|---|---|
| ECMAScript 2015 (6th Edition, ECMA-262) Определение 'Reflect' в этой спецификации. |
Стандарт | Initial definition. |
Browser compatibility
| Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|---|
| Basic support | 44 | (Да) | 42 (42) | Нет | Нет | Нет |
| Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Basic support | Нет | Нет | 42.0 (42) | Нет | Нет | Нет |