用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) }