Module 在ES6模块中通过字符串访问导出的函数

Module 在ES6模块中通过字符串访问导出的函数,module,export,ecmascript-6,babeljs,Module,Export,Ecmascript 6,Babeljs,考虑以下几点: exports['handleEvent']('event'); export function handleEvent(event) { // do something with `event` } 这在使用babel传输节点模块时有效,因为它会将所有内容粘贴到导出对象上。在香草ES6中是否有导出对象的概念?我希望能够使用名称字符串调用方法 我想到的一件事就是将所有函数粘贴到一个对象上,然后分别导出它们。另一个选择是使用一些邪恶的评估工具。在当前模块中,是否有通过字符串

考虑以下几点:

exports['handleEvent']('event');

export function handleEvent(event) {
  // do something with `event`
}
这在使用babel传输节点模块时有效,因为它会将所有内容粘贴到导出对象上。在香草ES6中是否有导出对象的概念?我希望能够使用名称字符串调用方法


我想到的一件事就是将所有函数粘贴到一个对象上,然后分别导出它们。另一个选择是使用一些邪恶的评估工具。在当前模块中,是否有通过字符串访问ES6导出的标准方法?

我不太确定是否遵循

以下是ES6模块导入和导出的几个示例。有没有和你要找的相匹配的

示例1

制作人:

export function one() { return 1 };
export function two() { return 2 };
export function one() { return 1 };
export function two() { return 2 };
export default {
  one() { return 1 },
  two() { return 2 }
};
export default {
  one() { return 1 },
  two() { return 2 }
};
export default function() { return 1 };
export function two() { return 2 };
消费者:

import {one, two} from 'producer';

one();
two();
import * as producer from 'producer';

producer.one(); // or producer['one']()
producer.two();
import producer from 'producer';

producer.one(); // or producer['one']()
producer.two();
import {one, two} from 'producer';

one();
two();
import one, {two} from 'producer';

one();
two();
示例2

制作人:

export function one() { return 1 };
export function two() { return 2 };
export function one() { return 1 };
export function two() { return 2 };
export default {
  one() { return 1 },
  two() { return 2 }
};
export default {
  one() { return 1 },
  two() { return 2 }
};
export default function() { return 1 };
export function two() { return 2 };
消费者:

import {one, two} from 'producer';

one();
two();
import * as producer from 'producer';

producer.one(); // or producer['one']()
producer.two();
import producer from 'producer';

producer.one(); // or producer['one']()
producer.two();
import {one, two} from 'producer';

one();
two();
import one, {two} from 'producer';

one();
two();
示例3

制作人:

export function one() { return 1 };
export function two() { return 2 };
export function one() { return 1 };
export function two() { return 2 };
export default {
  one() { return 1 },
  two() { return 2 }
};
export default {
  one() { return 1 },
  two() { return 2 }
};
export default function() { return 1 };
export function two() { return 2 };
消费者:

import {one, two} from 'producer';

one();
two();
import * as producer from 'producer';

producer.one(); // or producer['one']()
producer.two();
import producer from 'producer';

producer.one(); // or producer['one']()
producer.two();
import {one, two} from 'producer';

one();
two();
import one, {two} from 'producer';

one();
two();
示例4

制作人:

export function one() { return 1 };
export function two() { return 2 };
export function one() { return 1 };
export function two() { return 2 };
export default {
  one() { return 1 },
  two() { return 2 }
};
export default {
  one() { return 1 },
  two() { return 2 }
};
export default function() { return 1 };
export function two() { return 2 };
消费者:

import {one, two} from 'producer';

one();
two();
import * as producer from 'producer';

producer.one(); // or producer['one']()
producer.two();
import producer from 'producer';

producer.one(); // or producer['one']()
producer.two();
import {one, two} from 'producer';

one();
two();
import one, {two} from 'producer';

one();
two();
示例5

制作人:

export function one() { return 1 };
export function two() { return 2 };
export function one() { return 1 };
export function two() { return 2 };
export default {
  one() { return 1 },
  two() { return 2 }
};
export default {
  one() { return 1 },
  two() { return 2 }
};
export default function() { return 1 };
export function two() { return 2 };
消费者:

import {one, two} from 'producer';

one();
two();
import * as producer from 'producer';

producer.one(); // or producer['one']()
producer.two();
import producer from 'producer';

producer.one(); // or producer['one']()
producer.two();
import {one, two} from 'producer';

one();
two();
import one, {two} from 'producer';

one();
two();

示例二可能会有所帮助,
producer[dynamicPropertyName]()
正是OP想要的。但是,您可以将模块导入自身(在producer模块中使用该语法)吗?