26 апр 2019 Q2W :
Приватные поля классов в JS
Однажды в классы javascript добавили ключевое слово static для статических членов класса.
Т.е....
Подробнее... Т.е....
Канал: Программирование
Метки: devel
270 0 3 3
Комментарии (18)
static это предложенная TC39 экспериментальная фича, которой ещё нет в спецификации ES. Так что это пока не часть JS и ничего там не добавляли; с приватными полями вроде та же история. /закончил доебываться/
А такой странный синтаксис приватного поля объясняется очень просто: зарешение проблемы коллизии имен. Поясню кодом:
А такой странный синтаксис приватного поля объясняется очень просто: зарешение проблемы коллизии имен. Поясню кодом:
class ClassWithGetSet {
#msg = 'hello world';
get msg() {
return this.#msg;
}
set msg(x) {
this.#msg = `hello ${x}`;
}
}
Если бы поле "msg" называлось как и сеттеры и геттеры, то последние бы просто игнорировались при использании поля в других местах.class ClassWithGetSet {
msg = 'hello world';
get msg() {
return this.msg;
}
set msg(x) {
this.msg = `hello ${x}`;
}
}
var a = new ClassWithGetSet()
a.msg = 'etst'
console.log(a.msg); // распечатает 'etst', а не 'hello etst'
Для добавления комментариев необходимо авторизоваться
Битва танков
Управляй многотонной боевой машиной, участвуй...