RasKerGG / SocialNetwork

GNU General Public License v3.0
1 stars 0 forks source link

Урок 7. Все о ES6 Классах #54

Closed Fenz1t closed 1 month ago

Fenz1t commented 1 month ago

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

class Person {
  constructor(name) {
    this.name = name;
  }

  greet() {
    console.log(`Hello, my name is ${this.name}`);
  }
}

В этом примере мы определяем класс Person с конструктором, который принимает name в качестве параметра, и методом greet().

Создание экземпляра класса:

const john = new Person('John');
john.greet(); // "Hello, my name is John"

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

class Employee extends Person {
  constructor(name, job) {
    super(name);
    this.job = job;
  }

  describe() {
    console.log(`${this.name} is a ${this.job}`);
  }
}

const alice = new Employee('Alice', 'Developer');
alice.greet(); // "Hello, my name is Alice"
alice.describe(); // "Alice is a Developer"

В этом примере мы определяем класс Employee, который наследует от Person. Конструктор Employee вызывает конструктор родительского класса Person с помощью super(name). Также мы добавляем свойство job и метод describe().

Ключевые особенности ES6 классов:

  1. Конструктор: Метод constructor() вызывается при создании нового экземпляра класса и используется для инициализации свойств объекта.
  2. Методы: Методы определяются внутри класса без использования ключевого слова function.
  3. Наследование: Ключевое слово extends используется для наследования от другого класса. Метод super() вызывает конструктор родительского класса.
  4. Статические методы и свойства: Определяются с помощью ключевого слова static.

Просто добавили так называемый "синтаксический сахар", чтобы проще работать