模块的继承

模块之间也可以继承。

假设有一个circleplus模块,继承了circle模块。

  1. // circleplus.js
  2. export * from 'circle';
  3. export var e = 2.71828182846;
  4. export default function(x) {
  5. return Math.exp(x);
  6. }

上面代码中的export *,表示再输出circle模块的所有属性和方法。注意,export *命令会忽略circle模块的default方法。然后,上面代码又输出了自定义的e变量和默认方法。

这时,也可以将circle的属性或方法,改名后再输出。

  1. // circleplus.js
  2. export { area as circleArea } from 'circle';

上面代码表示,只输出circle模块的area方法,且将其改名为circleArea

加载上面模块的写法如下。

  1. // main.js
  2. import * as math from 'circleplus';
  3. import exp from 'circleplus';
  4. console.log(exp(math.e));

上面代码中的import exp表示,将circleplus模块的默认方法加载为exp方法。