CommonJS

js在浏览器端业务简单,没有模块化,也可以开发。为了js不仅仅运行到浏览器,还可以在所有的宿主环境都可以用,比如服务端,诞生了CommonJS。

CommonJS是为了js的模块化开发规范而制定。

在CommonJS中,一个文件就是一个模块,每一个模块都是一个单独的作用域,在该模块内部定义的变量,无法被其他模块获取修改,定义为global对象的属性除外,该模块通过export或者module.exports来导出模块,其它模块通过require方法来引入使用

模块的输出通过modue.exports对象来输出

exports对象用于导出当前模块的方法或变量,唯一的导出口

module对象就代表模块本身。

  • module标志模块
  • exports导出模块
  • require引用模块

2009年,node诞生,js从而用于服务端。

服务端开发,因为有文件系统,操作系统等交互,如果没有模块化,没法编程。

node的开发就是遵循于CommonJS规范来开发

npm是node的包管理器,也是遵循CommonJS规范来开发

math.js

function add(a,b){
    return a + b;
}
module.exports = {
    add:add
}

require():加载模块

例子:

var math  = require("./math");

math.add(1,2) //3

服务端开发都是相当于本地操作,可以用同步加载(synchronous)

浏览器端模块开发需要网络请求,不可以使用同步加载,只能异步加载(asynchronous)

定义模块:

math.js

导出模块:math.js

exports.add = function(){...}

引入模块:use.js

var add = require("./math").add

使用模块:use.js

add()

results matching ""

    No results matching ""