Какие подходы существуют в JavaScript для реализации повторного использования кода без использования прототипного наследования?

В JavaScript для повторного использования кода без прототипного наследования часто применяются следующие подходы:

Короткий ответ

Что ответить на собеседовании

В JavaScript для повторного использования кода без прототипного наследования часто применяются следующие подходы:

Подробный разбор

Ответ с пояснениями

В JavaScript для повторного использования кода без прототипного наследования часто применяются следующие подходы:

  1. Функции высшего порядка и композиция функций — создание небольших функций, которые можно комбинировать для получения нужного поведения.
  2. Миксины (mixins) — объекты или функции, которые добавляют функциональность другим объектам через копирование свойств.
  3. Декораторы — функции, которые оборачивают другие функции, расширяя их поведение.
  4. Модули — выделение повторно используемого кода в отдельные файлы или пространства имён.
  5. Классы с использованием композиции вместо наследования — включение объектов как свойства вместо наследования.

Пример миксина:

const canEat = {
  eat() {
    console.log('Eating');
  }
};

const canWalk = {
  walk() {
    console.log('Walking');
  }
};

function createPerson(name) {
  let person = { name };
  return Object.assign(person, canEat, canWalk);
}

const person = createPerson('John');
person.eat(); // Eating
person.walk(); // Walking

Таким образом, повторное использование достигается через композицию и объединение функциональностей, а не через прототипное наследование.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее