什么是 ES6 中的动态导出

新手上路,请多包涵

我听说 es6 中不允许动态导出/导入。

本网站 使用示例 export default 5 * 7; 就好像它是合法的静态导出一样。这似乎是合理的,因为它清楚地评估为 35 的静态值,但我想知道现在究竟什么才符合静态导出的条件。

此代码 使用 export default Backbone.Router.extend({...}); 就好像它是合法的静态导出一样。这对我来说似乎很可疑,因为它对我来说似乎是动态导出(导出函数调用的结果)。

原文由 Kevin Wheeler 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 779
1 个回答

第二个例子只导出函数调用的 _结果_,它是静态的。该函数只被调用一次,因此每次导入的结果总是相同的。

一个例子来说明:

f.js

 function f() {
    return 2 * Math.random();
}

export default f(); // Is called, before the export is defined. Result: 1.23543

i1.js

 import f from 'f';

console.log(f); // 1.23543

i2.js

 import f from 'f';

console.log(f); // 1.23543 as well

原文由 nils 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题