В чем разница между классом и объектом?
Классы
Класс — это шаблон (чертёж) для создания объектов, а объект — конкретный экземпляр, созданный по этому шаблону.
Класс
Описывает структуру и поведение: поля и методы, но сам по себе данных не хранит.
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).