Variable scopes
To understand Meteor's build process and its folder conventions, we need to take a quick look at variable scopes.
Meteor wraps every code files in an anonymous function before serving it. Therefore, declaring a variable with the var
keyword will make it only available in that file's scope, which means these variables can't be accessed in any other file of your app. However, when we declare a variable without this keyword, we make it a globally available variable, which means it can be accessed from any file in our app. To understand this, we can take a look at the following example:
// The following files content var myLocalVariable = 'test'; myGlobalVariable = 'test';
After Meteor's build process, the preceding lines of code will be as follows:
(function(){ var myLocalVariable = 'test'; myGlobalVariable = 'test'; })();
This way, the variable created with var is a local variable of the anonymous function, while the other one can be accessed globally, as it could be created somewhere else before.