@Boris009

К какому шаблону относится оформление свойств через нижнее подчеркивание?

Часто встречаю оформление класса в стиле
Для чего this._data с нижним подчеркиванием?
Почему его не оформляют через просто this.data?
Где про это почитать можно?

class User {
  constructor() {
    this._data = {}
  }

  setUser(val) { return this._data = val }

  get name() { return this._data.name }

  set name(val) { return this._data.name = val }
}
  • Вопрос задан
  • 345 просмотров
Решения вопроса 1
meusov11
@meusov11
По сути никакому.

Использование нижнего подчеркивания перед именем переменной, такого как наприме р this._data, является соглашением в некоторых языках программирования, включая JavaScript. Это не является частью синтаксиса языка или специальной функциональностью, а скорее соглашением об именовании, указывающим на то, что переменная является "приватной" или "внутренней" для твоего класса

В js вообще нет строгой приватности для переменных или свойств классов. Все свойства и методы класса по умолчанию доступны извне объекта. Использование символа _ перед именем переменной или свойства служит как некий сигнал или подсказка для других разработчиков о том, что эта переменная или свойство предназначены для внутреннего использования и не следует напрямую обращаться к ним извне класса.

Таким образом, this._data в вашем примере указывает на то, что _data предполагается использовать только внутри класса User. Если бы использовалось this.data без символа _, это могло бы дать впечатление, что свойство data предназначено для публичного доступа извне класса.

Еще разрабы документируют такие соглашения и указывают на то, что свойства или методы с символом _ перед именем предназначены для внутреннего использования. Это может быть указано в комментариях или в документации класса.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы