JavaScript在使用时存在两大问题,文件依赖和命名冲突。模块化
一个功能就是一个模块,多个模块能够组成完整应用,抽离一个模块不会影响其余功能的运行。函数
// a.js // 在模块内部定义变量 let version = 1.0; // 在模块内部定义方法 const sayHi = name => `您好, ${name}`; // 向模块外部导出数据 exports.version = version; exports.sayHi = sayHi;
导入模块时后缀能够省略ui
// b.js // 在b.js模块中导入模块a let a = require('./b.js'); // 输出b模块中的version变量 console.log(a.version); // 调用b模块中的sayHi方法 并输出其返回值 console.log(a.sayHi(''));
module.exports.version = version; module.exports.sayHi = sayHi;
exports是module.exports的别名(地址引用关系),导出对象最终以module.exports为准spa
exports.version = version; module.exports.version = version;
module.exports = { name: 'zhangsan', }