20200424
Plan
- 你不知道的 js - 代码组织
Notes
模块
- 以下这种写法并不推荐
export default {
xxx1() {},
xxx2() {},
};
上面这种写法类似于:
var obj = {
xxx1() {},
xxx2() {},
};
export default obj;
而对于 js 引擎来说,是无法静态分析一个对象的。这样的话 js 引擎能做的优化会减少。可以换成下面这种写法:
var obj = {};
export default obj;
export function xxx1() {}
export function xxx2() {}
// 或者
export { xxx1, xxx2 }; // 这里的xxx1和xxx2称为模块指定符。
因为整体整体目标是可静态分析的,所以模块指定符必须是一个 identifier。
命名空间导入
import * as xxx from "xxx";
xxx.default; // 如果xxx有默认导出,那么xxx.default就是默认导出模块