--- title: Reflect slug: Web/JavaScript/Reference/Global_Objects/Reflect translation_of: Web/JavaScript/Reference/Global_Objects/Reflect ---
{{JSRef}}

Reflect вбудованний об'єкт, що об'єднує в собі методи для перехоплюючих JavaScript операцій. Ці методи такі ж, як у proxy handlers. Reflect є не функціональний об'єкт, тому не може використовуватися, як конструктор.

Опис

На відміну від більшості глобальних об'єктів, Reflect не є конструктором. Ви не можете використовувати його з new оператором або запустити Reflect як функцію. Всі властивості та методи Reflect є статичними (так само як у {{jsxref("Math")}} об'єкта).

Методи

Reflect об'єкт надає статичні функції, які мають такі ж імена як proxy handler методи. Деякі з цих методів є також ідентичними до відповідних методів в {{jsxref("Object")}}, хоча існують деякі тонкі відмінності між ними.

{{jsxref("Reflect.apply()")}}
Виконує цільову функцію з аргументами, які визначені параметром args. Дивись також {{jsxref("Function.prototype.apply()")}}.
{{jsxref("Reflect.construct()")}}
Оператор new як функція. Еквівалент до виклику new target(...args). Надає також опційну(не обовязковий) можливість встановити інший прототип.
{{jsxref("Reflect.defineProperty()")}}
Подібний до {{jsxref("Object.defineProperty()")}}. Повертає {{jsxref("Boolean")}}.
{{jsxref("Reflect.deleteProperty()")}}
Оператор delete як функція. Еквівалент до виклику delete target[name].
{{jsxref("Reflect.get()")}}
Функція, що повертає значення властивості.
{{jsxref("Reflect.getOwnPropertyDescriptor()")}}
Подібно до {{jsxref("Object.getOwnPropertyDescriptor()")}}. Повертає дескриптор даної властивості, якщо така існує у об'єкті,  {{jsxref("undefined")}} в іншому випадку.
{{jsxref("Reflect.getPrototypeOf()")}}
Така як {{jsxref("Object.getPrototypeOf()")}}.
{{jsxref("Reflect.has()")}}
Оператор in як функція. Повертая булеве, що вказую чи існує власна або успадкована властивість.
{{jsxref("Reflect.isExtensible()")}}
Така як {{jsxref("Object.isExtensible()")}}.
{{jsxref("Reflect.ownKeys()")}}
Повертає масив власних(не успадкованих) ключів властивостей цільового об'єкту.
{{jsxref("Reflect.preventExtensions()")}}
Подібно до {{jsxref("Object.preventExtensions()")}}. Повертає {{jsxref("Boolean")}}.
{{jsxref("Reflect.set()")}}
Функція, яка встановлює значення для властивостей. Повертає {{jsxref("Boolean")}} як true якщо оновлення було успішним.
{{jsxref("Reflect.setPrototypeOf()")}}
Функція, що встановлює прототип об'єкта.

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

Specification Status Comment
{{SpecName('ES2015', '#sec-reflect-object', 'Reflect')}} {{Spec2('ES2015')}} Початкове визначення.
{{SpecName('ESDraft', '#sec-reflect-object', 'Reflect')}} {{Spec2('ESDraft')}} Reflect.enumerate був видаленний.

Сумістність браузерів

{{Compat("javascript.builtins.Reflect")}}

Дивись також