exports,export,module.exports,require与import的说明

1.export与import

export与import是es6的模块命令;export用于规定模块对外暴露的接口,import用于引入其他模块提供的功能;

export var str = 'hello';  // ok
export function fn(x, y) {
  // some thing
}    //ok

var str1 = 'hello';
var str2 = 'world';
export {str1, str2};   //ok
export {
  str1 as newName1,
  str2 as newName2
}    //ok

import { fn1, fn2, fn3 } form './xxxx.js';  //大括号内的变量名必须与被导入的模块对外接口的名称相同
import { fn1 as newName1 } form './xxx.js';

2.exports与module.exports

  • 每一个node.js执行文件会创建一个module对象,同时该对象会创建一个exports属性,初始化的值是{};即module.exports={};
  • exports是moudle.exports的引用,即exports=module.exports={};即默认exports与module.exports指的是同一块内存。
  • 当module.exports或export指向新对象时,exports与module.exports就断开了连接,通过exports = module.exports 让exports 重新指向 module.exports。
  • module.exports方法可以单独返回其他数据类型,如数组,字符串,数字等类型;而exports返回的只能是一个对象

    即module.exports = function() {}; module.exporst = [...];是没问题的;而exports.xx = yyyy; 只能是这样写;

  • 当使用了module.exports导出数据后,该模块再使用exports导出的数据将会被忽略。即模块导出的时候,真正导出的是module.exports,而不是exports。

3.require

require是node支持的模块引入命令

你可能感兴趣的:(exports,export,module.exports,require与import的说明)