Skip to main content

Класс: базовый синтаксис

MyClass технически является функцией (той, которую мы определяем как constructor), в то время как методы, геттеры и сеттеры записываются в MyClass.prototype.

Синтаксис «class»

class MyClass {
// методы класса
constructor() { ... }
method1() { ... }
method2() { ... }
method3() { ... }
...
}

Затем используйте вызов new MyClass() для создания нового объекта со всеми перечисленными методами.

При этом автоматически вызывается метод constructor(), в нём мы можем инициализировать объект.

💥 Методы в классе не разделяются запятой

Что такое класс?

В JavaScript класс – это разновидность функции.

Вот что на самом деле делает конструкция class User {...}:

  1. Создаёт функцию с именем User, которая становится результатом объявления класса. Код функции берётся из метода constructor (она будет пустой, если такого метода нет).
  2. Сохраняет все методы, такие как sayHi, в User.prototype.

При вызове метода объекта new User он будет взят из прототипа, как описано в главе F.prototype. Таким образом, объекты new User имеют доступ к методам класса.

Геттеры/сеттеры, другие сокращения

Как и в литеральных объектах, в классах можно объявлять вычисляемые свойства, геттеры/сеттеры и т.д. При объявлении класса геттеры/сеттеры создаются на User.prototype

Свойства классов

В приведённом выше примере у класса User были только методы.

class User {
name = "Аноним";

sayHi() {
alert(`Привет, ${this.name}!`);
}
}
new User().sayHi();

Свойство name не устанавливается в User.prototype. Вместо этого оно создаётся оператором new перед запуском конструктора, это именно свойство объекта.

🚀 Источник: https://learn.javascript.ru/class