03. Object Destructing

  • Паттерн деструкции объекта заключен в фигурные скобки {...}

  • Имена в объектном паттерне должны совпадать с именами ключей объекта.

Базовый синтаксис:

const {key1, key2} = {key1:, key2…}

Переприсваивание ключа в переменную с другим именем:

const { width: w, height: h, title } = options;

Задание значений по умолчанию =:

const { a = 1, b = 0, z: c = 3 } = { b: 2, z: undefined };
const [d = 0, e = 5, f = 6] = [4, , undefined];
return a === 1 && b === 2 && c === 3 && d === 4 && e === 5 && f === 6;

Можно и сочетать одновременно двоеточие и равенство:

const { width: w = 100, height: h = 200, title } = options;

Ключи объекта при деструктуризации могут быть вычисленными:

const FOO = "foo";
const { [FOO]: f } = { foo: 123 }; // f = 123

Что позволяет использовать деструктуризацию для выделения символов:

// Create and destructure a property whose key is a symbol
const KEY = Symbol();
let obj = { [KEY]: "abc" };
let { [KEY]: x } = obj; // x = 'abc'

Last updated