Показать сообщение отдельно
  #5 (permalink)  
Старый 26.05.2020, 22:54
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от DVV
Написал объект с одним приватным свойством
Почему вы решили, что добавление знака «_» в начало имени свойства делает его приватным?

Его совершенно спокойно можно читать и изменять. К вашим примерам из первого сообщения...
user._sex = "와";
console.log(user._sex); // выводит "와"


Конструкции вида...
set sex(sex) {
     this._sex = sex;
}
 
get sex() {
      return this._sex;
}
могут быть заменены на
sex = "";
или
this.sex = "";
в конструкторе...

<input class="sex-btn" type="button" value="m">
<input class="sex-btn" type="button" value="w">
<script>
    class User {
        constructor(sex) {
            this.sex = sex;
            document.querySelectorAll('.sex-btn').forEach(btn => {
                btn.addEventListener('click', () => {
                    console.log('before', this.sex)
                    this.sex = btn.value;
                    console.log('after', this.sex)
                });
            });
        }
    }

    let user = new User('test');
    user.sex = 123;
</script>
Ответить с цитированием