我听说 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/