Ответ 1
Определите функцию с помощью makeBoard = function() { ... }
.
Функции, определенные с помощью function foo() { ... }
, являются локальными для файла, как и переменные, определенные с помощью var bar = ...
.
Я хочу создать приложение в Meteor, из того, что я понимаю в руководстве, которое он загружает сначала поддиректории, а затем следует алфавитный порядок. Моя файловая структура похожа на это...
/server
/lib
/client
/lib
game.js -> already starts declaring the function "makeBoard(){}"
/template.js -> where the function "makeBoard()" is called.
таким образом, кажется, что функция ошибки "makeBoard()" не существует, работает только, если я объявляю в том же файле, где я хочу ее назвать. Даже когда я перемещаю файл "game.js" в тот же каталог, где "template.js", это происходит. Как я должен правильно ссылаться на ресурсы, которые находятся в разных файлах на Meteor?
Определите функцию с помощью makeBoard = function() { ... }
.
Функции, определенные с помощью function foo() { ... }
, являются локальными для файла, как и переменные, определенные с помощью var bar = ...
.
Используя глобально определенную переменную, как предполагает avital, будет работать, но это не рекомендуемый вариант дизайна кода (см. ошибку JS 1, указанную здесь).
Вместо этого в вашем каталоге lib
вы можете создать файл с помощью
Meteor.myFunctions = {
...
makeBoard : function() { ... },
...
}
Затем в любом другом js файле вы можете вызвать Meteor.myFunctions.makeBoard()
. Это должно быть сделано в каталоге lib
, потому что Meteor гарантирует, что файлы js в lib
загружаются перед другими каталогами, поэтому ваша функция уже будет загружена.