Page 336 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 336
ГЛ В А 1
А
2
С в о й с т в а объ екта
-
и р ок и объ ект ы
п
с
Свойства доступа: получатели и установщ и к и
Существует два типа свойств объектов: свойства данных (data property) и свойства
доступа (accessor property). Мы уже сталкивались с обоими типами, но свойства до
ступа остались за кадром благодаря некоторым синтаксическим нововведениям ЕSб (в
главе 9 мы называли их "динамическими свойствами").
Мы знакомы с функциональными свойствами (или методами); свойства доступа
подобны им, но у них есть две функции (получения значения (getter) и установки зна
чения (setter)), которые при доступе к ним действуют скорее как свойство данных,
чем как функция.
Давайте рассмотрим динамические свойства. Предположим в классе User есть
i
методы setEma l и getEmail. Мы решили использовать методы "get" и "set" вместо
a
обычного свойства em i l потому, что хотим предотвратить ввод пользователем не
допустимого адреса электронной почты. Наш класс очень прост (для простоты мы
считаем любую строку, содержащую символ " @ " допустимым адресом электронной
почты).
const USER EМAIL = SymЬol ( ) ;
class User {
setEma l (v l ue ) {
a
i
if ( ! / @ / . t est ( v alu ) ) throw new Еrrоr ( ' Неправильный адрес : $ { valu } ' ) ;
e
e
this [USER _ EМAIL ] = value ;
getEmail )
(
return this [ U SER _ EМAI L ) ;

