--- sidebar_position: 1 --- # Класс: базовый синтаксис MyClass технически является функцией (той, которую мы определяем как constructor), в то время как методы, геттеры и сеттеры записываются в MyClass.prototype. ## Синтаксис «class» ```js 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` были только методы. ```js class User { name = "Аноним"; sayHi() { alert(`Привет, ${this.name}!`); } } new User().sayHi(); ``` Свойство name не устанавливается в `User.prototype`. Вместо этого оно создаётся оператором `new` перед запуском конструктора, это именно свойство объекта. 🚀 **Источник: [https://learn.javascript.ru/class](https://learn.javascript.ru/class)**