【发布时间】:2012-12-23 02:24:11
【问题描述】:
好吧,我已经厌倦了很多东西。我仍然很困惑,我知道答案会很简单,但我还是要问。
我有一个函数:
Module.load = function(a) {
require("./modules/"+a+".js");
Module.loaded.push(a);
Log("Loaded Module: "+a);
};
并使用Module.load('basic'); 加载基本文件。
现在,我通过一个对象来定义模块:
Modules = { basic:1,queue:0,admin:1,notify:0 }
所以我写了这个函数:
for (x in Modules) { if (Modules[x] == 1) Module.load(x); };
但它不起作用,对于我的生活,我不知道为什么。
【问题讨论】:
-
“不工作”是什么意思?你没有看到
Log()的输出?此外,您正在使x成为没有var的全局变量。 -
让我添加 'var' 看看会发生什么,笨蛋。是的,我没有看到日志的输出,也无法访问加载的文件。
-
只需添加 'var' 就可以了。我觉得自己完全迟钝了,但我是这样预测的。谢谢!
-
只是好奇,有人能解释一下为什么
var在这里很重要吗?这是特定于节点的东西吗? (我知道 Javascript,但从未使用过节点。) -
如果您使用全局变量,您可能会在
load()正在调用的函数之一的其他地方使用x全局变量。养成始终将变量设为本地变量的习惯是个好主意。
标签: javascript node.js for-loop