1.解决命名冲突
2.解决繁琐的文件依赖
3. 可读性、可依赖性
参考这里
// foobar.js
// 私有变量
var test = 123;
// 公有方法
function footbar {
this.foo = function{
// do soming...
}
this.bar = function {
// do soming
}
}
//exports 对象上的方法和变量是公有的
var footbar = new footbar();
exports.footbar = footbar;
//require 方法默认读取js文件,所以可以省略js后缀
var test = require('./boobar').footbar;
test.bar();