PassFront
  1. PassFront
  2. База знаний
  3. Классы

В чем разница между классом и объектом?

Классы

Класс — это шаблон (чертёж) для создания объектов, а объект — конкретный экземпляр, созданный по этому шаблону.

Класс

Описывает структуру и поведение: поля и методы, но сам по себе данных не хранит.

class User {
  constructor(name) {
    this.name = name;
  }
  greet() {
    return `Привет, ${this.name}`;
  }
}

Объект (экземпляр)

Конкретная реализация класса с собственными данными, создаётся через new:

const user1 = new User('Ann'); // объект
const user2 = new User('Bob'); // другой объект

user1.greet(); // 'Привет, Ann'
user2.greet(); // 'Привет, Bob'

Из одного класса создаётся много независимых объектов со своим состоянием, но общими методами (из прототипа).

Аналогия

Класс — чертёж дома; объект — конкретный построенный по нему дом. Чертёж один, домов много.

Нюанс JavaScript

Объект можно создать и без класса — литералом {} или через Object.create. Класс — лишь удобный способ создавать однотипные объекты; под капотом это прототипы.

Коротко для собеседования

Класс — шаблон, описывающий структуру и поведение (поля, методы), без данных. Объект — конкретный экземпляр класса с собственным состоянием, созданный через new. Из одного класса — много объектов. В JS объект можно создать и без класса (литерал, Object.create).

Другие вопросы раздела