我需要main.js(在运行脚本)的函数的模块的范围要被识别:添加功能到外部模块中的NodeJS
Modules.js:
function x(){
functionNeeded();
}
module.export.x = x;
Main.js
var m = require("modules.js");
function functionNeeded(){
//function needed to call
}
//m.x() is called successfully
//but fails because functionNeeded is not defined (check modules.js)
//with m.functionNeeded = functionNeeded before calling m.x() it also fails.
有没有人对这个如何实现这样我可以传播本功能的任何想法main.js跨几个模块的离子,而不复制或传播到整个模块?
为什么不把它放在它自己的模块中,并且需要它在你需要的地方。另一种选择是将它作为参数传递。 – adeneo
不改变module.js,你不能这样做。 module.js在它自己的范围内运行,并且你不能从module.js之外改变这个范围(除了弄坏全局变量之外,这绝对不是一个好主意)。当然,您可以编辑module.js以多种方式解决此问题(最灵活的方法是将'functionNeeded()'放在它自己的module中,module.js可以'require()'或者可以传递它in'x()'作为回调 – jfriend00