Количество возможностей:
- Создание функции общедоступного доступа с надлежащей областью именования для получения значения по требованию.
- Передача значения в функции, где оно потребуется
- Передать функцию приватного доступа другому модулю
- Поместить переменную в глобальную область с правильно заданной областью именования
- Передать «объект данных» другому модулю, который имеетзначение в нем (наряду с другими значениями)
То, что имеет наибольшее значение, зависит от того, сколько данных вам нужно поделиться, насколько широко им нужно делиться, является ли обмен обоими способами и т. д...
Типичный шаблон проектирования для предоставления глобальных данных с минимальным воздействием на загрязнение глобального пространства имен заключается в следующем:
var JF = JF || {}; // create single global object (if it doesn't already exist)
JF.getMyData = function() {return(xxx);}; // define accessor function
JF.myPublicData = ...;
Затем в любом месте вашего приложения вы можетевызов JF.getMyData();
или доступ JF.myPublicData
.
Идея здесь заключается в том, что все открытые методы (или даже объекты данных) могут быть привязаны к объекту JF, поэтому в глобальном пространстве есть только один новый элемент.Все остальное находится внутри этого одного объекта.