Reflect

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

Опис

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

Методи

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

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

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

Specification Status Comment
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Reflect' in that specification.
Standard Початкове визначення.
ECMAScript (ECMA-262)
The definition of 'Reflect' in that specification.
Living Standard Reflect.enumerate був видаленний.

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

BCD tables only load in the browser

Дивись також

  • Глобальний об'єкт Proxy.
  • Об'єкт handler.