这是b.js
var something = "hooorraaaaay!!!";
这是a.js
require( './b.js' );
console.log(something);
为什么something
内无法识别a.js
。我知道它已经用var
声明,但我的理解是在函数外声明的任何变量都应该是全局的。那么为什么这不起作用呢?
答案 0 :(得分:0)
我假设您正在使用node.js
来判断require函数。
node.js将每个文件包装在自己的范围内。这与var
关键字的使用无关。 node.js中的每个文件都称为模块。
现在假设您要包含一个模块,require
,您已经正确使用了它。
但是因为你的模块没有输出任何东西,所以当它包含在其他模块中时它是无用的。
因此,在b.js文件的末尾添加以下行:
module.exports.something = something;
现在我们终于可以使用导出的变量:
var b = require('./b.js');
console.log('Something is : ' + b.something);