Подтвердить что ты не робот

Доступ к переменным из другого файла CoffeeScript?

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

4b9b3361

Ответ 1

Несколько возможностей:

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

Что наиболее важно, зависит от того, сколько данных вам нужно поделиться, насколько широко оно должно быть общим, независимо от того, является ли совместное использование обоими способами и т.д.

Типичный шаблон проектирования для публикации глобальных данных с минимальным воздействием на загрязнение глобального пространства имен заключается в следующем:

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, так что в глобальном пространстве есть только один новый элемент. Все остальное находится внутри одного объекта.

Ответ 2

В этом разделе было несколько вопросов, связанных с CoffeeScript:

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