@vasIvas

Принято ли в js выделять приватные свойства?

Принято ли в js, как-то выделять приватные свойства?
  • Вопрос задан
  • 2631 просмотр
Решения вопроса 1
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Не всегда. Если выделяют, то обычно начиная их имя с подчеркивания:
var obj = { _answer: 42}
Не стоит забывать и про protected.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
В JS нету приватных свойст. Вообще.

Можно добавлять символы в начале, например классический вариант с двумя нижними подчеркиваниями. Например в angular.js все приватные свойства начинаются с $$ и помечены в jsdoc как @ private. При этом, если включена нужная опция google closure compiller при минификации имя свойства поменяется на какое-нибудь короткое рандомное, так что вопрос с доступом к свойству в принципе решен так как с каждым билдом имя свойства скорее всего будет отличаться и это ограничит количество желающих с ним работать.

По настоящему приватные свойства можно эмулировать завернув все это дело в замыкания. За счет того что наша переменная находится в своей области видимости, к которой имеет доступ только ваш код, можно чуть чуть себя обезапасить.
Ответ написан
unclechu
@unclechu
Можно объявлять локальные переменные внутри конструктора и оперировать с ними через getter/setter, которые объявлены методами от this опять же в конструкторе. Но вообще общепринято выделять используя нижнее подчёркивание в начале имени свойства (аналогично Python, там тоже нет настоящих приватных свойств). Если нужна «защита от дураков», — то тут поможет кнут и маны по «правилам хорошего тона».
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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