Класс: базовый синтаксис
MyClass технически является функцией (той, которую мы определяем как constructor), в то время как методы, геттеры и сеттеры записываются в MyClass.prototype.
Синтаксис «class»
class MyClass {
// методы класса
constructor() { ... }
method1() { ... }
method2() { ... }
method3() { ... }
...
}
Затем используйте вызов new MyClass() для создания нового объекта со всеми перечисленными методами.
При этом автоматически вызывается метод constructor(), в нём мы можем инициализировать объект.
💥 Методы в классе не разделяются запятой
Что такое класс?
В JavaScript класс – это разновидность функции.
Вот что на самом деле делает конструкция class User {...}:
- Создаёт функцию с именем
User, которая становится результатом объявления класса. Код функции берётся из методаconstructor(она будет пустой, если такого метода нет). - Сохраняет все методы, такие как
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