javascript - 什么是 ES6 中的动态导出

标签 javascript ecmascript-6

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

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

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

最佳答案

第二个示例仅导出函数调用的结果,它是静态的。该函数仅被调用一次,因此每次导入的结果始终相同。

举例说明:

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

关于javascript - 什么是 ES6 中的动态导出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35035304/

相关文章:

javascript - jQuery 延迟对象

javascript - Iterables : Objects with iterators, 或生成器

javascript - Angular 的 $http 中返回的 Promise 与普通 Javascript (ES6) 中返回的 Promise 相同吗?

ecmascript-6 - ES6如何导入模块 "onto"另一个模块

javascript - 奇怪的类属性行为

javascript - 如何在构造函数中包装使用 Proxy 构造的对象?

javascript - GraalVM 如何将 java List 对象传输到 javascript,以便我可以在它们上制作 .push() 和 .forEach()?

javascript - 语义用户界面下拉菜单不起作用

javascript - AngularJS 中的 CORS 错误

javascript - 如何使用属性方法克隆原型(prototype)?