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();