// I can access my private function here.
privateFunction();
jQuery(window).resize(function () {
// But not here :(
privateFunction();
});
Да, вы можете.JavaScript статически ограничен.Вы можете получить доступ ко всем переменным и функциям каждой включаемой области в обратном вызове изменения размера, включая privateFunction
(если вы не скрывали его, определив privateFunction
во вложенной области).
Чтовы не можете получить доступ к любой из этих локальных переменных вне функции включения.
Я пытаюсь определить способ, которым я могу контролировать доступ к методам для JavaScript, который мы используем на работе(Часть проекта по улучшению стандартов кодирования).
Я бы предположил, что это бессмысленное упражнение.
Пространство имен хорошо подходит для предотвращения нежелательных конфликтов имен.То, для чего действительно «частные» члены, - это строгое соблюдение жестких границ безопасности.Но это JavaScript: здесь вы не запускаете код с разными уровнями доступа и песочницей, как в Java.Вам не нужно слепо воспроизводить модель безопасности Java в JavaScript.Кто здесь «нападающий»?Сам?Другие программисты в вашей команде?
Скрытие и инкапсуляция данных - это хорошая практика, но вам не нужно строго обеспечивать конфиденциальность для достижения этой цели.Действительно, наличие настоящих привилегированных лиц может усложнить задачи по отладке и созданию прототипов.Рассмотрим Python-подобный подход, в котором вы просто помечаете элементы, которые не должны использоваться извне, например, с подчеркиванием в начале.Любой, кто использует псевдо-приватный член, знает, что он делает то, что не должен, и, надеюсь, у него есть для этого временная причина.