我正在Meteor JS中创建一个程序。所有JS文件都按一定顺序一次加载。
为了工作,许多变量需要是全局的,但与此同时,我希望我的JS是模块化的。
对于FILE 3使用FILE 1和FILE 2中的函数,必须将函数声明为FILE 2中的变量赋值,否则它们不能在文件外部访问。我不相信这是一个提升的问题,因为main.js是最后加载的,那些是使用FILE 1和2中的函数的函数。无论哪种方式,我理论上应该能够在控制台中看到函数它在全球范围内。
文件1
function foo() { } // This is not global outside of the file. Why?
文件2
bar = function() { } // This is considered global.
FILE 1中的函数可以正常访问该函数,但如果放在文件外部,则函数或控制台无法访问它们。
这是Meteor JS的事吗?一个JavaScript的东西?有人帮助我理解和学习。 :)
答案 0 :(得分:3)
您的代码被包装在函数中,因此变量和函数文字会创建本地变量。
但是,如果您指定一个尚未声明的名称,那么将创建一个全局变量。
您应该添加'use strict';
以将其转换为错误。