我知道全局变量不好。
但是,如果我在框架的40个文件中使用节点的模块“ util”,那么最好仅将其声明为全局变量,例如:
util = require('util');
在index.js文件中,而不是在40个文件中写入该行?
因为我经常在每个文件中使用相同的5-10个模块,这样可以节省大量时间,而不是一直复制粘贴。
在这种情况下干不好吗?
每个模块应该是独立的。在每个模块的第一个需求之后,require都不会花费任何东西。
如果您想单独测试一个模块怎么办?您会遇到很多问题,因为它无法识别您的应用程序中存在的某些“全局”要求。
是的,即使在这种情况下,全局变量也很糟糕。全球人员几乎总是在破坏:可测试性,封装性和易于维护。
更新的答案,2012年1月
global现在,该对象是每个模块内部的全局对象。因此,每次在模块内部分配全局变量(无作用域)时,该变量便成为global该模块对象的一部分。
global
global因此,该对象仍然不是 全局 对象,因此不能如此使用。
2012年12月更新
global现在,该对象在应用程序中具有全局作用域,可用于存储需要从所有模块访问的任何数据/功能。