使用Function对象node.js调用函数

我必须使用string来执行函数。 所以我创build了一个新的function,我把string。 它工作,但不是当我想调用另一个模块中的特定function:

var mymodule = require('./mymodule'); 

 mymodule.function(a, b); //Works var functionTest1= new Function('var a = 2; console.log(a*a);'); functionTest1(); //Works var functionTest2= new Function('mymodule.function(a, b)'); functionTest2(); //Doesn't work (error console : mymodule is not defined) 

我究竟做错了什么? 还有其他方法可以做到吗?

请试试这个:

 var functionTest3 = new Function('mymodule','a','b', 'mymodule.function(a, b)'); functionTest3(mymodule, a, b); 

使用Function构造函数创build的函数不会为其创build上下文创build闭包; 他们总是在全球范围内创build。 运行它们时,它们只能访问自己的局部variables和全局variables,而不能调用函数构造函数的作用域。

更多阅读https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function