--- 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"
{{Compat}}