Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 访问模块中与另一模块中的函数名称相似的函数_Javascript_Node.js - Fatal编程技术网

Javascript 访问模块中与另一模块中的函数名称相似的函数

Javascript 访问模块中与另一模块中的函数名称相似的函数,javascript,node.js,Javascript,Node.js,代码: 我在RESTCalls\u GET中循环函数。例如,i=getComponent,一个名为getComponent\u RESTCall的函数将位于模块restCalls 有人告诉我,实现这一点的一种方法是使用eval()(尽管不建议这样做)。这种方法不起作用,当我调试时,在mockURLForSucceed中使用eval()的参数是未定义的 这显然导致我所有的测试都失败了 如有任何建议,我们将不胜感激 编辑:(附加信息) 编辑:(中途) 我重新使用eval()获得了file.funct

代码:

我在
RESTCalls\u GET
中循环函数。例如,
i=getComponent
,一个名为
getComponent\u RESTCall
的函数将位于模块
restCalls

有人告诉我,实现这一点的一种方法是使用eval()(尽管不建议这样做)。这种方法不起作用,当我调试时,在
mockURLForSucceed
中使用eval()的参数是
未定义的

这显然导致我所有的测试都失败了

如有任何建议,我们将不胜感激

编辑:(附加信息)

编辑:(中途)

我重新使用eval()获得了file.functionName格式中所需的函数/变量名,如下所示:

如果这些是字符串,我现在遇到的问题是。所以当我把它们传递到一个函数中时,它得到的是字符串值,而不是它在自己的函数中所等于的值,这有意义吗

我的意思是,如果我现在将
restcallerl
传递到一个函数中,那么该参数的值将是
restCallshttp://whatever
)。既然我现在有了函数的名称,我能用这个名称在我的项目中搜索函数吗


这项任务似乎很简单,我想我想我已经想得太多了。

我认为你不需要
eval
那么,使用

var RESTCallURL     = eval('"restCalls." + i + "_RESTCall"');
var RESTCallData    = eval('"RESTCalls_GET_ExampleData." + i + "_ExampleData"');
通过在浏览器控制台中定义以下内容,可以轻松测试此行为

RESTCalls_GET[i](function(result) {
  result.should.equal(RESTCalls_GET_ExampleData[i + '_ExampleData']));
  done();
});

这改善了这种情况,因为函数
mockURLForSucceed
现在实际上正在执行。然而。未定义其
URLofRESTCall
succeedData
的参数。我将编辑我的帖子,以便您可以看到该功能
var RESTCallURL     = eval('"restCalls." + i + "_RESTCall"');
var RESTCallData    = eval('"RESTCalls_GET_ExampleData." + i + "_ExampleData"');
RESTCalls_GET[i](function(result) {
  result.should.equal(RESTCalls_GET_ExampleData[i + '_ExampleData']));
  done();
});
var test = {
  'some-function': function() { console.log('works'); }
};
test['some-function']();