Показать сообщение отдельно
  #1 (permalink)  
Старый 26.05.2020, 20:49
DVV DVV вне форума
Кандидат Javascript-наук
Отправить личное сообщение для DVV Посмотреть профиль Найти все сообщения от DVV
 
Регистрация: 26.12.2017
Сообщений: 125

Геттеры и сеттеры
Изучаю основы ООП, классы. Столкнулся с проблемой, ответ на который не могу нагуглить (возможно ищу не по тем ключам, так как тема для меня относительно новая). Написал объект с одним приватным свойством и методом для его получения, когда пользователь кликает по одной из двух кнопок выбора пола. Все работает.

let user = {
        _sex: '',
        setSex: function () {
            document.querySelectorAll('.sex-btn').forEach(btn => {
                btn.addEventListener('click', () => {
                    this._sex = btn.value;
                });
            });
        }
    };

    user.setSex();


Но при попытке создания геттера для класса по аналогии возникли трудности. Не понимаю, как можно сделать установку приватного свойства класса при переборе псевдомассива кнопок или любых других элементов.

class User {
        constructor(sex) {
            this._sex = sex;
        }

        set sex(sex) { // откуда будет браться параметр для сеттера не пойму
            document.querySelectorAll('.sex-btn').forEach(btn => {
                btn.addEventListener('click', () => {
                    user.sex = btn.value;
                });
            });
        }

        get sex() {
            return this._sex;
        }
    }

    let user = new User();
    user.sex // что сюда передавать тоже не пойму
Ответить с цитированием