Почему программисты обычно используют префикс подчеркивания внутри некоторых переменных функций?

Дело в том, что я знаю основы программирования, кто-то сказал мне, что это используется для инкапсуляции внутри исходного кода программы (код с ООП (объектно-ориентированное программирование)).

Но я хочу знать, как успешно реализовать этот стиль программирования, спасибо!

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

function sample(param, parent){
  let _param = "something(specially an object or method from an object)"
}

Это просто стилистический выбор. Обычно это означает, что это какая-то «внутренняя переменная», и другие программисты не должны ее изменять или использовать. Но это также может иметь разное значение, чем в разных группах.

VLAZ 30.05.2019 16:38

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

Steve Todd 30.05.2019 16:39

В C# это поле, представляющее собой переменную, объявленную на уровне класса, а не внутри метода. Как только мы к этому привыкнем, это быстрый способ взглянуть на переменную и узнать (надеюсь), была ли она объявлена ​​в нашем методе или в классе. Это, в свою очередь, говорит нам кое-что о том, как мы должны его использовать.

Scott Hannen 30.05.2019 16:40

Для использования Visual Studio я могу ввести _ и увидеть все поля-члены в объекте. Я не использую этот стиль для локальных переменных функции.

Ron Beyer 30.05.2019 16:40

в ES6 объявленные переменные const пишутся с заглавной буквы (например, const Foo = 3;), поскольку ссылка на их объект неизменяема. Пусть объявленные переменные имеют тип camelCase (например, let fooBar = 3;). Переменная с подчеркиванием означает переменную конфигурации, предназначенную для внутреннего использования в программе (например, const _Foo = 3;).

Len Joseph 30.05.2019 16:42

@LenJoseph Я не думаю, что это официально. Где-то это руководство по стилю, но не очень широко принятое. Я все еще вижу много const foo вокруг.

VLAZ 30.05.2019 16:48

@VLAZ Хотя это не официально, это определенно лучшая практика. Мы видели множество ошибок во время выполнения, когда люди пытались обновить константу, потому что забывали, что это не обычная изменяемая переменная.

Len Joseph 30.05.2019 16:49

@LenJoseph есть много «хороших практик», но это не значит, что они широко распространены. Поэтому говорить, что «в ES6» что-то так или иначе, в лучшем случае вводит в заблуждение.

VLAZ 30.05.2019 16:51

@CamiloTerevinto тоже oop, если честно.

VLAZ 30.05.2019 16:52

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

Len Joseph 30.05.2019 16:53

@LenJoseph все, что я говорю, это то, что «в ES6` const ничего не значит. Не существует официально принятого способа ее написания. Фактически, использование заглавных букв в первых буквах кажется исключением - если люди принимают специальное соглашение об именах , они обычно идут с все заглавные буквы, потому что это более стандартный способ различать константы в других языках - например, в Java вы очень часто видите static final FOO. Не знаю, почему вы думаете, что мое эго замешано, когда я говорю, что ES6 не иметь официальное руководство по стилю.

VLAZ 30.05.2019 16:58

@VLAZ Тогда я неправильно понял твое намерение. Я полагаю, что я исключение, если это так. Я видел мутации в заглавных буквах, поэтому думаю, что наличие констант в заглавных буквах имело бы смысл. По крайней мере, IMO должна быть некоторая дифференциация с обычной изменяемой переменной. Но каждому свое в конце концов.

Len Joseph 30.05.2019 17:03
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
12
108
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это мягкая форма венгерская нотация для определения области действия данной переменной.

См.: Стоит ли консультировать по вопросам не по теме?

EJoshuaS - Stand with Ukraine 30.05.2019 17:12

Я просто пытался быть полезным для ОП, я не участвую в кампаниях по закрытию голосования, особенно в качестве нового участника. Кроме того, несколько минут назад у меня не было права голоса против.

Samuel Vidal 30.05.2019 17:27

Одно отрицательное голосование не является «кампанией отрицательного голосования».

user47589 30.05.2019 18:01

Спасибо. Меня это мало беспокоило.

Reynald Ramirez de Luna 31.05.2019 17:20

Другие вопросы по теме