g_hagmt
@g_hagmt
Начинающий веб-разработчик

Есть ли private, public, protected, static в JS?

Пытался найти в javascript синтаксис объявления области видимости для методов и свойств, но мне показалось что такого нет, или если есть, то синтаксически сильно отличается от привычного варианта. Если второе, то как это выглядит? А то в гугле не нашел достаточно ясного ответа.
  • Вопрос задан
  • 711 просмотров
Решения вопроса 3
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Приватных пока нет (но с помощью транспайлеров как бы есть):
class Foo {
  #private = 42;
}


Статичные есть:
class Foo {
  static property = 42;
  static method() {...}
}
Ответ написан
Комментировать
Xuxicheta
@Xuxicheta
инженер
Есть/будут приватные поля начинающиеся с #. https://jsfiddle.net/7263ms4k/ (в хроме есть, в лисе нет)
static есть
А так, имитация всего этого есть в typescript

Можно запилить приватные поля как переменные в конструкторе и передавать их в методы через замыкание. Но придется делать каждый раз новые методы для каждого экземпляра. Типа так https://jsfiddle.net/melchiorio/4ztL3qkx/
Можно хранить в WeakMap используя this как ключ, типа так https://jsfiddle.net/melchiorio/z7afuec5/
Ответ написан
Комментировать
lastuniverse
@lastuniverse
Всегда вокруг да около IT тем
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы