如何动态调用导入的命名空间?

达尔豪西

我有 2 个导出文件,它们都导出具有相同名称的函数。

我可以区分这两个,因为它们会被分配到不同的命名空间。但我想动态调用命名空间,而不将名称硬编码到代码中。

//exporter1.js
function boo(params)
{
    return 0;
}
module.exports.boo = boo;

//exporter2.js
function boo(params)
{
    return 1;
}
module.exports.boo = boo;

//mainarea.js
var exp1 = require('./exporter1.js');
var exp2 = require('./exporter2.js');

var ns = "exp1";

global[ns].boo(params); //This doesn't work
天阳

导入的模块不存储在global变量中。所以你不能用global. 你可以做类似的事情

//mainarea.js
var exp1 = require('./exporter1.js');
var exp2 = require('./exporter2.js');

var supportedModules = {
  'exp1': exp1,
  'exp2': exp2,
}

var ns = "exp1";

supportedModules[ns].boo(params);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章