20200424

@xiaojingzhao

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就是默认导出模块

More