Javascript-如何在使用window[funcName]时运行导入的函数?

Javascript-如何在使用window[funcName]时运行导入的函数?,javascript,Javascript,我有一个像这样导入的函数: import { myFunc } from './myFunc.js'; 我正在尝试使用字符串作为函数名运行此函数(字符串的内容可能会更改): 但是,window[fnStr]找不到导入的函数。您找不到,因为它们不是全局对象的属性(在浏览器上通过window引用)。他们根本不是全球性的。这是件好事。™ :-) 您可以使用这些函数创建自己的对象,并使用它: import { myFunc } from './myFunc.js'; const funcs = {

我有一个像这样导入的函数:

import { myFunc } from './myFunc.js';
我正在尝试使用字符串作为函数名运行此函数(字符串的内容可能会更改):


但是,
window[fnStr]
找不到导入的函数。

您找不到,因为它们不是全局对象的属性(在浏览器上通过
window
引用)。他们根本不是全球性的。这是件好事。™ :-)

您可以使用这些函数创建自己的对象,并使用它:

import { myFunc } from './myFunc.js';

const funcs = {
    myFunc
};
用法:

let fnStr = "myFunc";
let fn = funcs[fnStr];
fn();

如果您有几个这样的函数,您可能希望将它们导出到对象上,而不是作为单个绑定,例如:

myFuncs.js

function myFunc() {
    // ...
}
function myOtherFunc() {
    // ...
}

export default {myFunc, myOtherFunc};
然后


您是否从myFunc.js文件导出了myFunc?是的,我已经导出了它。这是不可能的。ES6模块使用“声明性环境记录”。见:
function myFunc() {
    // ...
}
function myOtherFunc() {
    // ...
}

export default {myFunc, myOtherFunc};
import funcs from './myFuncs.js';

let fnStr = "myFunc";
let fn = funcs[fnStr];
fn();