QSm*_*lly 2 javascript node.js
我又回来了。我想到了一些我想在多个文件之间拆分的代码等等。有了这个,我需要一个声明的对象来跟踪所有的东西,比如数组、计数变量,以及我需要在整个项目中访问和编辑的东西。
所以,我有一个文件,我在其中声明了各种对象。让我们Constants.js在树中调用这个文件;
Main.js
Constants.js
Secondary.js
Run Code Online (Sandbox Code Playgroud)
我在 中声明了一个对象Constants.js,然后我需要在主文件中使用该对象。之后,我需要运行一个Secondary.js使用全局对象的函数并在那里编辑它。问题是,如果我在辅助文件中声明并编辑它,它在Main.js文件中不会相同(或更新),是吗?
好的,我的Constants.js文件如下所示 -
Main.js
Constants.js
Secondary.js
Run Code Online (Sandbox Code Playgroud)
在Main.js我要求使用以下代码的对象中,并编辑其中的内容 -
// Constants.js
exports.Tools = {
Stack: [],
Test: "foo",
Track: 0
// ...
};
Run Code Online (Sandbox Code Playgroud)
在那之后,我想运行一个函数,就像这样 -
// Main.js
const Constants = require("./Constants.js");
const Tools = Constants.Tools;
Tools.Stack.push("Some stuff");
Run Code Online (Sandbox Code Playgroud)
然后在函数运行后,Tools对象需要更新Secondary.js:run()它所做的事情。例如 -
// Main.js
require("./Secondary.js").run(Tools);
Run Code Online (Sandbox Code Playgroud)
因此,我希望主文件中的对象使用对其执行的新值进行更新Secondary.js。
如果不使用该对象或地图中的函数,是否有可能发生这种情况?我希望它是一个普通的对象。
非常感谢。~Q
在主文件 Main.js 中声明全局变量
global.Tools = {
Stack: [],
Test: "foo",
Track: 0
// ...
};
Run Code Online (Sandbox Code Playgroud)
在 Secondary.js 中只需将该变量用作
global.Tools.Stack.push(value)
Run Code Online (Sandbox Code Playgroud)
在 Node.js 中,全局对象在所有模块中都可用,可以直接使用,无需导入任何文件。
| 归档时间: |
|
| 查看次数: |
374 次 |
| 最近记录: |