Reflect¶
Note
EcmaScript6
- class
Reflect
¶ исследование и обаботка свойств объектов
-
apply
(function, this, args)¶ Вызов функции с заданным контекстом.
Аналогичен методу apply
Function
function s(a, b){ return this.value + a + b; } Reflect.apply(s, {value: 100}, [10, 30]); // 140
-
construct
(constructor, args, prototype)¶ Вызов функции в качестве конструктора
Аналогичен оператору new, отличается:
передача в свойстве prototype
function const1(a, b){}; function const2(){}; var newObj = Reflect.construct(const1, [1, 2], const2);
-
defineProperty
(object, property, descriptor)¶ Опеределяет новое или изменяет существующее свойство объекта. Возвращает логическое значение, была ли операция успешной.
Аналогичен методу defineProperty
Object
, отличается:возвращает логическое значение, а не модифицированный объект
// создание свойств данных var obj = {}; Reflect.defineProperty(obj, 'name', { // значение свойства value: 'Ilnurgi', // значение может быть изменено writable: true, // атриубты свойства могут быть изменены и свойство может быть удалено configurable: true, // свойство может быть использовано в цикле for ... in enumerable: true }) // создание свойства со средствами доступа var obj = { __name__: 'ilnurgi' } Reflect.defineProperty(obj, 'name', { get: function(){ return this.__name__; }, set: function(value){ this.__name__ = value; }, // свойства дескриптора могут быть изменены и свойство может быть удалено configurable: true, // свойство может быть использовано в цикле for ... in enumerable: true })
-
deleteProperty
(object, property)¶ Удаление свойства объекта.
Аналогичен delete
Reflect.deleteProperty(obj, 'name');
-
enumerate
(object)¶ Возвращает итератор, перечисляемые свойства объекта.
Аналогичен циклу for … in
var iter = Reflect.enumerate(obj); iter.next().value;
-
get
(object, property, this)¶ Возвращает значение свойства объекта
-
getOwnPropertyDescriptor
(object, property)¶ Возвращает дескриптор свойства объекта
Аналогичен getOwnPropertyDescriptor
Object
var descriptor = Reflect.getOwnPropertyDescriptor(obj, 'name');
-
getPrototypeOf
(object)¶ Извлекает прототип объекта
Аналогичен getPrototypeOf
Object
var obj2 = Reflect.getPrototypeOf(obj1);
-
has
(object, property)¶ Используется для проверки существования свойства в объекте.
Reflect.has(obj, 'name');
-
isExtensible
(object)¶ Проверяет возможность расширения объекта, возможность добавления новых свойств в объект
Аналогичен isExtensible
Object
Reflect.isExtensible(obj);
-
ownKeys
(object)¶ Возвращает массив ключей свойств объекта, игнорируя наследуемые свойства.
Reflect.ownKeys(obj);
-
preventExtensions
(object)¶ Позволяет отметить объект как нерасширяемый, возвращает логическое значение, успешность операции.
Аналогичен preventExtensions
Object
Reflect.preventExtensions(obj);
-
set
(object, property, value, this)¶ Задает значение свойства объекта
-
setPrototypeOf
(object, prototype)¶ Установка значения прототипа
Reflect.setPrototypeOf(obj, { name: 'ilnurgi' })
-