从其他文件调用时发生Javascript作用域错误

从其他文件调用时发生Javascript作用域错误,javascript,Javascript,我做错了什么?我在FILE1中定义了一个变量,然后在FILE2中需要FILE1,在MAIN中需要FILE2,因此我希望能够从MAIN和FILE2访问全局varmy_global,但它会抛出一个错误 文件1 文件2 主要 错误语句(来自Screeps控制台): 尝试使用标记引用文件,而不是使用require 我在stackoverflow的另一篇文章中看到了关于require。 希望这能帮助你 require()不是标准JavaScript的一部分。根据您的 问题和标记,require()内置于N

我做错了什么?我在FILE1中定义了一个变量,然后在FILE2中需要FILE1,在MAIN中需要FILE2,因此我希望能够从MAIN和FILE2访问全局var
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);