[摘抄] 1.概述

阮一峰老师的教程,自己手打了一遍,原文地址(http://www.w3cbus.com/nodejs/module.html#toc0);

CommonJs规范

1.概述

Node应用由模块组成,采用CommonJS模块规范。

  • 根据这个规范,每一个文件就是一个模块,有自己的作用域。
  • 在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。
// example.js
var x =5 ;
var addX = function (value) {
    return  value+x;
}

上面代码中,变量x和函数addX,是当前文件example.js 私有的,其他文件不可见。

如果想在多个文件分享变量,必须定义global对象的属性。

global.warning = true;

上面代码的warning变量,可以被所有文件读取,当然,这样的写法是不推荐的。

CommonJS规范规定,每个模块内部,module变量代表当前模块。

这个变量是一个对象,他的exports属性(module.exports)是对外的接口。加载某个模块,其实是加载该模块的module.exports属性

var x = 5;
var addX = function (value) {
  return value + x;
};
module.export = {
  x,
  addX
};	

上面代码通过moudle.exports输出变量x和函数addX

require方法用于加载模块。

var example = require('./example.js');

console.log(example.x); //5
console.log(example.addX(1)); //6

CommonJS模块的特点如下:

> 所有代码都运行在模块作用域,不会污染全局作用域。

> 模块可以多次加载,但是只会在第一次加载时运行一次,然后运行结构就被缓存了,以后再加载,就直接读取缓存结果,想要让模块再次运行,必须清楚缓存。

> 模块加载的顺序,按照其在代码中出现的顺序。

posted @ 2019-11-26 15:28  Wuxiaoyi  阅读(116)  评论(0)    收藏  举报