javascript chapter10 模块

1.Node Exports


const sum=(x,y)=>x+y;
const square=x=>x*x;
const mean=data=>data.reduce(sum)/data.length;
const stddev=d=>{
  let m=mean(d);
  return Math.sqrt(d.map(x=>x-m).map(square).reduce(sum)/(d.length-1));
};

module.exports={mean,stddev};

2.Node Imports

const fs=require("fs");
const stats=require('./stats/js');

当一个模块只需要exports单独的函数或者类时,使用require获得它
如果一个模块是一个含有多个属性的对象时,你可以选择:
1.import整个模块。
2.import特定的属性

//方法1
const stats=require('./stats/js');
//方法2
let average=stats.mean(data);

3.ES6 Exports

  export const PI=MATH.PI;
  export function degreesToRadians(d){return d*PI/180;}

  export class Circle{
    consructor(r){this.r=r;}
    area(){return PI*this.r*this.r;}
}

第二种表示,定义好所有要export的值或函数,类,末尾放入
export{Circle,degreesToRadians,PI};

如果只需要export一个值

export default class BitSet{
}

export default可以使用匿名函数和匿名类,也可以使用对象。
export关键字只可能出现于你的代码的最上级。不能在类,函数循环,条件判断语句内出现export

10.3.2 ES6 Imports
Import的值必须是另一个文件export的值
import BitSet from './bitset.js';

引入所有export的值
import * as stats from "./stats.js";
stats是一个对象

10.3.3 import export 重命名
import不同js文件遇到重名的情况,使用as重命名

  import{render as renderImage } from "./imageutils.js";
  import{render as renderUI} from "./ui.js";

对于定义了default export的js文件可使用as重命名
import{default as Histogram,mean,stddev} from "./histogram-stats.js";

10.3.4 Re-Exports
对于Import后立即export该值可以使用省略写法

 export{mean} from "./stats/mean.js";
  export{stddev} from "/stats/stddev.js";

export所有值可以使用*

export * from "./stats/mean.js";
export * from "/stats/stddev.js";

可以使用as来重命名,假设我们要输出mean 方法,同时输出它的一个别名average方法。

export {mean ,mean as average} from "./stats/mean.js";
export {stddev} from "/stats/stddev.js";
posted @ 2024-12-29 16:50  zhongta  阅读(14)  评论(0)    收藏  举报