У меня была дискуссия с другим разработчиком о том, имеет ли смысл хакерство в частных функциях javascript или нет.
Альтернативы:
-  Конструктор и прототип со всеми функциями в не-API-методах (private) будут просто названы с подчеркиванием 
_function_name, чтобы разработчики знали, что они могут назвать и что они не могут назвать. - Конструктор и прототип функций API и свободные функции как частные функции внутри частного пространства имен, которое скрывает их от остальных пространств имен, кроме этого.
 
Мы не рассматриваем другие подходы, такие как создание частных функций в конструкторе формы var private_var= function(){}, потому что это вызовет создание всех этих функций каждый раз, когда объект будет создан, и каждый объект будет иметь свой собственный набор.
Причины, которые мы имели для них:
1
- Javascript не поддерживает частные функции как таковые, на самом деле нет концепции частной/защищенной/общедоступной видимости, так что это в основном хак
 - Использование подчеркивания в именах меток четко определяет границы границ данного класса/прототипа, нет необходимости "принудительно" его использовать, на самом деле языки, такие как Python, не имеют частных методов, а пользователи-питоны никогда не заботятся об этом, кроме использования символов подчеркивания
 - Даже если частный получает принудительное исполнение, какой смысл он делает на языке, где вы можете просто динамически заменить общедоступные методы?
 -  Влияет на читаемость, довольно много, частные функции разделяются на другой набор фигурных скобок для их области видимости, они не могут использовать 
thisили их нужно вызывать с помощьюfunction.call(object)илиfunction.apply(object) 
2
- Обеспечивает четкое ограничение путем инкапсуляции личных методов далеко от рук пользователя класса/прототипа.
 - Это более или менее отраслевой стандарт, многие разработчики javascript используют его как
 
Мы подозреваем, что, поскольку многие разработчики используют его, может быть и другая причина, такая как производительность или так далее.
Поскольку наши знания Javascript весьма ограничены, мы решили опубликовать это в stackoverflow, чтобы узнать, какой подход лучше и почему.