用variables名称调用一个函数

我想从variables名称调用函数。 我的代码是在react.js

要调用的函数> authentication.signIn()

我的代码如下

var authentication = require('authentication.js'); let controller = "authentication"; let operationId = "signIn"; const data = controller.operationId(); 

这里controller和operationId是dynamic的。 他们将在下一个循环中改变。 对于下一个循环中的示例,operationId的值是signOut,而controller是身份validation。 然后函数调用const数据如下

 const data = authentication.signOut(); 

但是这里的错误是: controller.operationId不是一个函数

你需要有一个对象来存储你的控制器,并从中调用

例如:

 const controllers = {} controllers.authentication = require('authentication') // more controllers... // later const method = 'signIn', controller = 'authentication' controllers[controller][method]() 

同样可以工作的东西像全局对象或任何东西。 你也可以把它包装成一个函数

例如很快

 controller = (name, method, ...args) =>{ if (!controllers[name]){ throw `Oh no, unknown controller ${name}` return } controllers[name][method](...args) }