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

Классы

@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 равно вновь созданному🏗️ экземпляру.

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

Интерактивный редактор
Результат
SyntaxError: Unexpected token (1:8)
1 : return ()
            ^

Параметр 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. Только один

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

Sumerian school

Ссылки:#

  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!