Какие знаешь принципы объектно-ориентированного программирования

«Какие знаешь принципы объектно-ориентированного программирования» — вопрос из категории Архитектура, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Основные принципы ООП в JavaScript:

  1. Инкапсуляция - скрытие деталей реализации
class User {
  #password; // приватное поле

  constructor(login, password) {
    this.login = login;
    this.#password = password;
  }
}
  1. Наследование - создание дочерних классов
class Admin extends User {
  constructor(login, password, role) {
    super(login, password);
    this.role = role;
  }
}
  1. Полиморфизм - переопределение методов
class Animal {
  sound() { return '...' }
}

class Cat extends Animal {
  sound() { return 'Meow' } // переопределение
}
  1. Абстракция - работа через интерфейсы
class FetchService {
  get(url) { /* абстрактная реализация */ }
}

Также важны принципы SOLID, но они больше относятся к проектированию архитектуры. В JavaScript ООП реализовано через прототипы, но синтаксис классов (ES6) делает код более понятным.