Свойства-аксессоры в ООП в JavaScript
Есть два типа свойств объекта.
Первый тип это свойства-данные (data properties). Мы уже знаем, как работать с ними. Все свойства, которые мы использовали до текущего момента, были свойствами-данными.
Второй тип свойств мы ещё не рассматривали. Это свойства-аксессоры (accessor properties). По своей сути это функции, которые используются для присвоения и получения значения, но во внешнем коде они выглядят как обычные свойства объекта.
Свойства-аксессоры создаются с помощью
ключевых слов get
и set
написанных
при объявлении методов:
class User {
get name() {
}
set name(name) {
}
}
В результате такого объявления
наш класс будет обладать свойством
name
. При этом при попытке чтения
этого свойства будет вызван метод,
объявленный через get
:
let name = user.name;
При попытке записи будет вызван метод,
объявленный через set
:
user.name = 'john';
Дан следующий класс:
class Employee {
get name() {
console.log('get');
}
set name(name) {
console.log('set');
}
}
Создайте объект этого класса
и попробуйте записать и прочитать
данные из свойства name
.