02. Destructing Pattern
Каждый паттерн деструкции содержит одну или несколько имен переменных:
Можно указывать только те значения из структуры, которые нужны:
конкретные ключи объекта;
первые элементы массива.
Перед деструкцией значение справа приводится к объекту при помощи системной функции
ToObject
.Если переменная справа имеет значение
null
илиundefined
будет выброшено исключениеTypeError
.Деструкция извлекает как данные так и методы.
Деструкция извлекает данные даже если они находятся в цепочке прототипов.
К каждому имени может быть указано значение по умолчанию после знака
=
.Каждое имя можно переименовать указав после имени в паттерне двоеточие и новое имя.
Если паттерн не совпадает со структурой в каких-либо частях, то пропущенные имена получают значение
undefined
.
Default Values
Объявлениям в паттерне можно задавать значение по умолчанию:
Параметр по умолчанию так же используется, если само значение в структуре равно undefined
(это еще лишний раз доказывает, что значениям undefined
не место в программе):
Значением по умолчанию может быть выражение или функция, которые будут вычислены лениво, по требованию, если объявление не получило своего собственного значения.
Значение по умолчанию может ссылаться на другой идентификатор в этом же паттерне, объявленный ранее.
Значением по умолчанию для паттерна может быть объект, к которому данный паттерн должен быть применен, если он не был применен в целевой структуре данных. Например:
Assign on destructing
Если хочется присвоить свойство объекта в переменную с другим именем, то можно через двоеточие указать соответствие между именем при деструкции и новой переменной:
Для массивов имеет значение порядок, поэтому нельзя использовать переименование :
, но значение по умолчанию — можно.
Last updated
Was this helpful?