Классы 👎
- О Proxy подробно и с примерами в «Современном учебнике JavaScript»;
- Новые #приватные поля классов в JavaScript.
Классы - это своего рода конструкторы объектов или "умные объекты", которые можно наследовать. В них можно создавать методы и наследовать свойства.
Классы в JS = функции, создающие объекты-заготовки, компоненты, которые можно многократно переиспользовать (экпортировать/импортировать, а также РАСШИРЯТЬ свойства) для создания типовых объектов, чтобы постоянно не дубрировать одинаковый код. Именуются с большой буквы.
На классах построена работа всех современных js-фреймворков. Раньше были в основном ОБЪЕКТЫ или ФУНКЦИИ, создающие ОБЪЕКТЫ, сейчас КЛАССЫ.
Допустим, есть какой-то набор данных.
const players = [
{ name: 'Leonel Messi', age: 35, citizenship: 'Argentina' },
{ name: 'Cristiano Ronaldo', age: 37, citizenship: 'Portugal' },
{ name: 'Kylian Mbappé', age: 24, citizenship: 'France' },
{ name: 'Erling Haaland', age: 22, citizenship: 'Norway' },
];
constructor()
- Вызывается всегда при вызове класса
- Метод для конструирования свойств будущего объекта
- Может содержать или не содержать параметры
- Эти параметры нужно передавать при вызове класса.
Можно для такого вида данных создать класс:
class Footballer {
// конструктор класса - свойства класса (будущего объекта)
// через this указываем название будующих свойств и присваиваем им значения
constructor(playerData) {
this.name = playerData.name;
this.age = playerData.age;
this.citizenship = playerData.citizenship;
}
// метод класса (будущего объекта)
showName() {
console.log(this.name);
}
}
Создание объектов (экземпляров класса)
// Создание экземпляра класса - передача объекта c данными в параметре
const player1 = new Footballer(players[0]);
// объект
player1; // Footballer {name: 'Leonel Messi', age: 35, citizenship: 'Argentina'}
// просмотр свойства
player1.citizenship; // 'Argentina'
// вызов метода
player1.showName(); // 'Leonel Messi'