从其他文件调用时发生Javascript作用域错误
我做错了什么?我在FILE1中定义了一个变量,然后在FILE2中需要FILE1,在MAIN中需要FILE2,因此我希望能够从MAIN和FILE2访问全局var从其他文件调用时发生Javascript作用域错误,javascript,Javascript,我做错了什么?我在FILE1中定义了一个变量,然后在FILE2中需要FILE1,在MAIN中需要FILE2,因此我希望能够从MAIN和FILE2访问全局varmy_global,但它会抛出一个错误 文件1 文件2 主要 错误语句(来自Screeps控制台): 尝试使用标记引用文件,而不是使用require 我在stackoverflow的另一篇文章中看到了关于require。 希望这能帮助你 require()不是标准JavaScript的一部分。根据您的 问题和标记,require()内置于N
my_global
,但它会抛出一个错误
文件1
文件2
主要
错误语句(来自Screeps控制台):
尝试使用
标记引用文件,而不是使用require
我在stackoverflow的另一篇文章中看到了关于require
。
希望这能帮助你
require()不是标准JavaScript的一部分。根据您的
问题和标记,require()内置于Node.js中以加载模块。
这个概念类似于C/Java/Python/[在此处插入更多语言]
进口或包括
模块的概念类似于只添加少量的
JavaScript代码通过一个标签与添加标记不同,它
不会将文件泄漏到全局范围
行为是正确的,您应该导出变量。例如
var my_global=42;
exports = {
my_global:my_global
}
您可以使用
var m = require('file1');
console.log(m.my_global);
你在尝试node.js吗?多亏了你的帖子,我在这里找到了答案:我必须导出全局变量你不能在Javascript中使用
标记。这是针对HTML的,问题并不表示用户正在使用HTML。因此,答案并不恰当。还可以通过提供代码片段来支持您的答案(链接不合适,因为它可能很快就会失效)。
require('FILE2');
console.log(my_global); //error here
ReferenceError: my_global is not defined
at module.exports:8:5
at Object.module.exports.loop:6:5
at __mainLoop:1:12057
at eval:2:4
at Object.c.runCode:6:26869
var my_global=42;
exports = {
my_global:my_global
}
var m = require('file1');
console.log(m.my_global);