Свойства-аксессоры в ООП в 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.



Чат с GPT Компилятор