Перейти к основному содержимому

Классы

@serverSerrverlesskiy

В JavaScript используется модель прототипного наследования: каждый объект наследует поля (свойства) и методы объекта-прототипа.

class

Для определения класса используется ключевое🗝️ слово class:

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

Такой синтаксис📖 называется объявлением🗣️ класса.

Class

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

Синтаксис📖 классов отличается от литералов объектов. Внутри классов запятые не требуются.

Класс может не иметь названия. С помощью выражения класса можно присвоить класс переменной 🔔 :

const UserClass = class {
// тело класса
}

Классы можно экспортировать в виде модулей. Вот пример экспорта по умолчанию:

export default class User {
// тело класса
}

А вот пример именованного экспорта:

export class User {
// тело класса
}

Класс становится полезным, когда вы создаете экземпляр класса. Экземпляр — это объект, содержащий данные и поведение, описанные 🖊️ классом.

Оператор new создает🏗️ экземпляр класса в JavaScript таким образом: instance = new Class().

Например, вы можете создать🏗️ экземпляр класса User 👤 с помощью оператора new:

const myUser = new User()

new User() создает🏗️ экземпляр класса User 👤.

Видео

Инициализация: constructor()

spangeBob

constructor(…) это специальный метод в теле класса, который инициализирует экземпляр. Это место, где вы можете установить начальные значения для полей или выполнить любые настройки объектов.

В следующем примере конструктор устанавливает начальное значение поля name:

class User {
constructor(name) {
this.name = name
}
}

constructor класса User использует один параметр name, который используется для установки начального значения поля this.name.

Внутри конструктора значение this равно вновь созданному🏗️ экземпляру.

Аргументы, используемые для создания экземпляра класса, становятся параметрами конструктора 👇 :

Интерактивный редактор
Результат
Loading...

Параметр name внутри конструктора имеет значение Jon Snow.

Если вы не определяете конструктор для класса, создается🏗️ конструктор по умолчанию. Конструктор по умолчанию является пустой функцией⚙️, которая не изменяет экземпляр.

В классе может быть только один метод с именем constructor.

Отказ от классов

rejection

Так как в курсе нашей школы мы учим разрабатывать мобильные приложения с помощью библиотеки React, где нововведение React Hooks позволяет использовать состояние и другие возможности React без написания классов. Поэтому рассказывать о классах больше нет смысла, так как мы от них отказались.

Проблемы?

Problem

Пишите в Discord или телеграмм чат, а также подписывайтесь на наши новости

JavaScript Camp

Вопросы:

Question

Какое ключевое🗝️ слово для определения класса?

  1. constructor()
  2. class
  3. this

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

  1. true
  2. false

Сколько методов constructor() может находится в одном классе?

  1. Неограниченно
  2. До десяти
  3. Только один

Для того чтобы понять, на сколько вы усвоили этот урок, пройдите тест в мобильном приложении нашей школы по этой теме или в нашем телеграм боте.

JS Camp

Ссылки:

  1. MDN web docs
  2. Learn JavaScript

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Philipp Dvinyaninov

📖

Dmitriy Vasilev

💵

Resoner2005

🐛 🎨 🖋

Navernoss

🖋 🐛 🎨

Become a Patron!