---
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 був видаленний. |
Сумістність браузерів
Таблиця сумістностей на цій сторінці згенерована з структурованих даних. Якщо Ви маєте бажання зробити свій внесок у дані, будь-ласка перевірте
https://github.com/mdn/browser-compat-data і відправте нам запит на оновлення(pull request).
{{Compat("javascript.builtins.Reflect")}}
Дивись також
- Глобальний об'єкт {{jsxref("Proxy")}}.
- Об'єкт {{jsxref("Proxy.handler", "handler")}}.