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

Материалы

Текст

TASKS

task 1

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

task 2

Усложним конструкцию геттера и сеттера - изучим класс 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. Таким образом можно сделать вывод, что если не требуется делать проверок результат записи - то можно использовать сеттер, если нужно обрабатывать ввод и возвращать для проверки результат операции - то необходимо писать свой сеттер.

task 3

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

task 4
Материалы юнита доступны после покупки курса
task 5
Материалы юнита доступны после покупки курса
task 6
Материалы юнита доступны после покупки курса