--- title: Reflect slug: Web/JavaScript/Reference/Global_Objects/Reflect translation_of: Web/JavaScript/Reference/Global_Objects/Reflect ---
Reflect - это встроенный объект, который предоставляет методы для перехватывания JavaScript операций. Эти методы аналогичны методам proxy handler`ов. Reflect
- это не функциональный, а простой объект, он не является сконструированным.
В отличие от большинства глобальных объектов, Reflect
- это не конструктор. Вы не можете использовать его с оператором new
или вызывать Reflect,
как функцию. Все свойства и методы объекта Reflect
являются статическими (так же, как и у объекта {{jsxref("Math")}}).
Объект Reflect
обеспечивает работу статических функций, называющиеся так же, как методы proxy handler`а. Некоторые из этих методов - те же, что и соответствующие им методы класса {{jsxref("Object")}}.
args
. Смотрите также {{jsxref("Function.prototype.apply()")}}.new
как функция. Аналогично new target(...args)
. Также предоставляет возможность определить другой прототип.delete
как функция. Аналогично delete target[name]
.for...in
. Возвращает итератор с собственными перечисляемыми и наследуемыми свойствами целевого объекта.in
как функция. Возвращает значение {{jsxref("Boolean")}} в зависимости от факта наличия собственного или наследованного свойства.true
при успешном выполнении.const duck = { name: 'Maurice', color: 'white', greeting: function() { console.log(`Quaaaack! My name is ${this.name}`); } } Reflect.has(duck, 'color'); // true Reflect.has(duck, 'haircut'); // false
Reflect.ownKeys(duck); // [ "name", "color", "greeting" ]
Reflect.set(duck, 'eyes', 'black'); // вернётся "true" если вызов успешен // объект "duck" теперь содержит свойство "eyes" со значением "black"
Спецификация | Статус | Комментарий |
---|---|---|
{{SpecName('ES6', '#sec-reflect-object', 'Reflect')}} | {{Spec2('ES6')}} | Изначальное определение. |
{{CompatibilityTable}}
Возможность | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Базовая поддержка | {{CompatChrome("44")}} | {{CompatVersionUnknown}} | {{CompatGeckoDesktop("42")}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |
Возможность | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Базовая поддержка | {{CompatNo}} | {{CompatNo}} | {{CompatGeckoMobile("42")}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |