SPRINT 05 . Волшебные методы get, set (геттеры и сеттеры). Понятие о приватных свойствах.
Материалы
Текст
TASKS
Создайте экземпляр класса 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.