Unit 5. Волшебные методы get, set (геттеры и сеттеры). Понятие о приватных свойствах.

Домашнее задание

Загрузка ДЗ на проверку возможна только после приобретения курса.

Создайте экземпляр класса Test. Присвойте через сеттер значение свойству testProp. Выведите в консоль созданный экземпляр. С помощью геттера получите значение свойства testProp. Выведите в консоль. Обратите внимание, что свойства testProp у нас нет. Есть приватное свойство _testProp, но используя геттер и сеттер мы для пользователя создаем видимость наличия свойства testProp.

Усложним конструкцию геттера и сеттера - изучим класс Test2 и геттер и сеттер. Обратите внимание на метод - setTestProp - он содержит тот же код, что и сеттер. Итак, мы добавили проверку. Давайте создадим экземпляр класса Test2 и используя сеттер передадим ему парамет строку 'bbb', причем сделаем это так:


const test2 = new Test2();
console.log(test2.testProp = 'bbb'); 
console.log(test2);
 

Изучите что возвратил сеттер - ожидаемо, согласно коду, возвратил введенное число, все работает так, как мы ожидаем.

Повторим те же действия с пустой строкой:


console.log(test2.testProp = ''); 
console.log(test2);
 

Как видите, мы не знаем, что произошло. Ожидали false, но не получили его. И значение testProp осталось прежнее. Т.е. ветка false просто не сработала. И применяя такой метод нужно быть осторожным, напрямую его в проверке (допустим засунуть в if ) использовать нельзя.

Повторим то же с нашим методом:


console.log(test2.setTestProp('')); 
console.log(test2);

Как видно, мы в явном виде получили false. Таким образом можно сделать вывод, что если не требуется делать проверок результат записи - то можно использовать сеттер, если нужно обрабатывать ввод и возвращать для проверки результат операции - то необходимо писать свой сеттер.

Выведите в консоль с помощью геттера значение testProp.

Задача доступна после приобретения курса.
Задача доступна после приобретения курса.
Задача доступна после приобретения курса.

Следи за новостями курсов на нашем канале

Открыть

Правила оформления домашних заданий

Открыть

Форум по задачам

Forum