Что такое декомпозиция в JavaScript?

Что такое декомпозиция в JavaScript?

Это одно и тоже с деструктуризацией?Или нет?

В этой ссылке все написано но я не уверен все правильно ли там.Хотел бы уточнить конкретно.


Ответы (2 шт):

Автор решения: Alexander Chernin

Неканоническое определение, скопитырено с https://learn.javascript.ru/destructuring-assignment

Деструктурирующее присваивание – это специальный синтаксис, который позволяет нам «распаковать» массивы или объекты в кучу переменных, так как иногда они более удобны. Деструктуризация также прекрасно работает со сложными функциями, которые имеют много параметров, значений по умолчанию и так далее.

Пример оттуда же. Деструктуризации массива:

// у нас есть массив с именем и фамилией
let arr = ["Ilya", "Kantor"]

// деструктурирующее присваивание
// записывает firstName=arr[0], surname=arr[1]
let [firstName, surname] = arr;

alert(firstName); // Ilya
alert(surname);  // Kantor

Лично мне нравится вот такое его использование - возврат множества переменных из функции

function f() {
    let v1 = "dsfsdf";
    let v2 = 5;
    return {v1, v2};
}

// При одинаковых именах полей объекта и переменных
let {v1, v2} = f();

// при разных
let {v1:valueA, v2:valueB} = f();
→ Ссылка
Автор решения: Grundy

В данном случае был выбран не совсем удачный вариант перевода термина destructuring.

Неудачный из-за того, что термин декомпозиция уже имеет устоявшееся определение в общей теории:

Декомпозиция — разделение целого на части. Также декомпозиция — это научный метод, использующий структуру задачи и позволяющий заменить решение одной большой задачи решением серии меньших задач, пусть и взаимосвязанных, но более простых.

И применяется скорее к архитектуре, чем к конкретной особенности одного языка.


В текущей статье, да - декомпозиция (объекта) является синонимом деструктуризации (объекта).

→ Ссылка