JavaScript — гибкий и универсальный язык программирования, что делает его одним из самых мощных языков программирования в мире. Гибкость может быть обеспечена за счет использования языка как во внешней, так и во внутренней разработке. Одной из самых мощных функций JavaScript является возможность создавать и использовать классы.

Классы — это шаблон или схема для создания объектов. Классы JavaScript — это мощный инструмент, который позволяет разработчикам создавать повторно используемый и хорошо организованный код. Они, как и традиционные объектно-ориентированные языки программирования, позволяют определять пользовательские типы данных со свойствами и методами. Классы JavaScript были представлены в ECMAScript 2015 (ES6), которые с тех пор стали неотъемлемой частью современного языка программирования. В этом сообщении блога мы рассмотрим основы классов JavaScript и то, как их можно использовать для написания более эффективного и организованного кода.

Зачем использовать классы?

Основная цель класса — обеспечить безопасность содержащихся в нем атрибутов данных. Он обеспечивает безопасность атрибутов, используя «#» перед именем атрибута. Доступ к этим закрытым атрибутам вне тела класса вызовет ошибки. ООП обычно объясняют четырьмя ключевыми принципами, которые определяют, как работают ООП-программы. Это наследование, инкапсуляция, абстракция и полиморфизм. Тело класса выполняется в строгом режиме даже без надписи «use strict» в начале кода.

Как создавать классы в JavaScript?

JavaScript предоставляет более простой синтаксис для создания классов. Чтобы создать класс, вам нужно использовать ключевое слово «класс», за которым следует имя класса. По соглашению имя класса всегда должно начинаться с заглавной буквы.

class PersonClass {

  let height;

  constructor(firstname, lastname, age){
    this.firstname = firstname;
    this.lastname = lastname;
    this.age = age;
  }

  greetPerson(){
    console.log(`Hello ${this.firstname} ${this.lastname}`);
  }

 }

Здесь имя класса — «PersonClass». Класс имеет четыре свойства, а именно «рост», «имя», «фамилия» и «возраст», а также один метод «greetPerson». Функция внутри класса называется методом.

Определение класса:

Класс в JavaScript можно определить двумя способами. Это
- объявление класса.
- выражение класса.

Объявление класса — это один из способов определения класса в JavaScript. Пример приведен ниже.

class PersonClass {

  let height = 6;

  constructor(firstname, lastname, age){
    this.firstname = firstname;
    this.lastname = lastname;
    this.age = age;
  }

  greetPerson(){
    console.log(`Hello ${this.firstname} ${this.lastname}`);
  }

 }

Другой способ определения класса в JavaScript — использование выражения класса. Синтаксис выражения класса аналогичен синтаксису объявления класса. Выражение класса может быть именованным или безымянным. Если он именованный, имя класса является локальным только для тела класса. Ниже приведен пример выражения именованного класса.

const Person = class PersonCl {

    let height = 6;

    constructor(firstname, lastname, age){
    this.firstname = firstname;
    this.lastname = lastname;
    this.age = age;
  }

  greetPerson(){
    console.log(`Hello ${this.firstname} ${this.lastname}`);
  }

}

Пример безымянного выражения класса,

const Person = class {

    let height = 6;

    constructor(firstname, lastname, age){
    this.firstname = firstname;
    this.lastname = lastname;
    this.age = age;
  }

  greetPerson(){
    console.log(`Hello ${this.firstname} ${this.lastname}!`);
  }

}

Как создать объект для класса в JavaScript?

В JavaScript вы используете ключевое слово «новое», за которым следует имя класса и любые аргументы, требуемые функцией-конструктором. Вы можете создать столько объектов, сколько хотите, с помощью одного класса. Вот пример,

const per1 = new PersonClass('John', 'Salt', 25);
per1.greetPerson(); // Hello John Salt!

В приведенном выше примере мы создали объект для PersonClass и сохранили его в переменной с именем per1. Используя эту переменную, мы можем получить доступ к атрибутам и методам внутри класса. Мы передали аргументы классу Person, и функция-конструктор автоматически инициализирует атрибуты аргументами внутри класса.

Наследование в JavaScript:

Наследование — одна из самых мощных функций классов JavaScript. Вы можете использовать наследование для создания нового класса, который является модифицированной версией существующего класса. Это полезно, когда вы хотите создать новый класс с некоторыми из тех же свойств и методов, что и у существующего класса, но с некоторыми изменениями или дополнениями.

Чтобы создать новый класс, который наследуется от существующего класса в JavaScript, вы используете ключевое слово extends, за которым следует имя класса, от которого вы хотите наследоваться. Вот иллюстрация:

class PersonCl {
  // Constructor fn
  constructor(firstName, birthYear) {
    this.firstName = firstName;
    this.birthYear = birthYear;
  }

  // A method
  calcAge() {
    console.log(`Age is ${2023 - this.birthYear}`);
  }
}

class StudentCl extends PersonCl {
  constructor(fullName, birthYear, course) {
    // Always needs to happen first
    super(fullName, birthYear); // this super method will call the constructor of the PersonCl
    this.course = course;
  }

  introduce() {
    console.log(`My name is ${this.fullName} and I study ${this.course}`);
  }
}

Во-первых, мы создаем класс с именем PersonCl, который имеет атрибуты имя и год рождения, а также метод calcAge, который возвращает возраст этого человека. Во-вторых, мы создаем еще один класс под названием StudentCl, который наследует класс PersonCl. На самом деле он получает атрибуты и методы из PersonCl с помощью ключевого слова super, а также добавляет новый атрибут и метод в StudentCl. Если мы попытаемся создать объект для StudentCl, этот объект сможет получить доступ к атрибутам и методам класса PersonCl.

const student1 = new StudentCl('Michael ken', 1999, 'Computer Science');
student1.introduce(); // My name is Michael ken and I study Computer Science
student1.calcAge(); // Age is 24
student1.firstname; // Michael ken

Подводя итог, можно сказать, что классы JavaScript — это мощный инструмент, который может помочь вам написать более модульный, повторно используемый и удобный в сопровождении код. Вы можете использовать классы для создания чертежей или шаблонов объектов, определять их свойства и методы, а затем создавать столько экземпляров этого класса, сколько необходимо. Вы можете улучшить свой опыт кодирования и сделать свой код более легким для чтения и понимания, используя классы в своем коде JavaScript.