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