Сообщение от 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>