是一套规范管理模块
每个js 为一个模块,多个模块作为一个包
node.js和Couchdb是对其的实现;
不同于jQuery
模块:定义、标识、引用(地址/模块名称)
模块类型:
核心模块http fs path
文件模块var util=require(‘./util.js’)
第三方模块npm var promise=require(‘bluebird’)
模块的流程:
创建模块 teacher.js function foo(){}
导出模块 exports.add=function(){} foo
加载模块 另一个js文件var teacher=require(‘./teacher.js’)
使用模块 teacher.add(‘wangcf’)
源码:
student.js
function add(student){ ???console.log(‘Add Student: ‘ + student)}//通过expots对象暴露方法exports.add=add
teacher.js
function add(teacher){ ???console.log(‘Add Teacher: ‘ + teacher)}//通过expots对象暴露方法exports.add=add
klass.js
//require引用模块var student = require(‘./student‘)var teacher = require(‘./teacher‘)function add(teacherName,students){ ???teacher.add(teacherName) ???????students.forEach(function(item,index){ ???????student.add(item); ???}) ???}///两者作用相同//传统的模块实例,是module.exports的辅助方法exports.add = add//有这个会忽略exports特别的对象类型,真实存在的东西//module.exports = add
index.js
var klass = require(‘./klass‘);klass.add("教师",[‘学生1‘,‘学生2‘])exports.add = function(klasses){ ???klasses.forEach(function(item,index){ ???????var _klass = item; ???????var teacherName = item.teacherName; ???????var students = item.students; ???????????????klass.add(teacherName,students) ???})}
CommonJs标准
原文地址:https://www.cnblogs.com/-beauTiFul/p/8981856.html