如果来自不同的文件(如果未分配给变量),则函数声明不是全局的

时间:2014-12-21 01:10:38

标签: javascript meteor

我正在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的东西?有人帮助我理解和学习。 :)

1 个答案:

答案 0 :(得分:3)

您的代码被包装在函数中,因此变量和函数文字会创建本地变量。

但是,如果您指定一个尚未声明的名称,那么将创建一个全局变量。

您应该添加'use strict';以将其转换为错误。