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";
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号