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

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


我正在尝试使用字符串作为函数名称来运行此函数(字符串的内容可能会更改):

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


但是,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};


然后

import funcs from './myFuncs.js';

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

关于javascript - Javascript-使用window [funcName]时如何运行导入的函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43370581/

10-12 05:52