注意:使用require方法加载模块,会执行被加载模块中的代码
/* 模块有三大分类:内置模块、自定义模块、第三方模块 */
/* 示例:使用require方法加载模块 */
// 注意:使用require方法加载模块,会执行被加载模块中的代码
// 1、加载内置模块
const fs = require('fs')
// 2、加载自定义模块
const riven = require('./riven-custom')
// 3、加载第三方模块(第三方模块需要我们先下载才能使用)
const moment = require('moment')
注意:require()导入模块时,得到的永远是module.exports指向的对象
console.log('这是我的自定义模块:Riven-custom');
/* 时刻谨记,require()模块时,得到的永远是module.exports指向的对象*/
// module.exports===exports(只是在默认情况下全等,指向改变后不是全等)
/* 指向误区:谨记以module.exports指向的对象为准 */
// 1、2指向的是不同的对象,3、4指向的是同一个对象
// 1、指向:{ username: '李四' }
exports.username = '张三'
module.exports = {
username: '李四'
}
// 2、指向:{ username: '张三' }
module.exports.username = '张三'
exports = {
username: '李四'
}
// module.exports===exports?: false
console.log('module.exports===exports?:', module.exports === exports)
// 3、指向:{ username: '张三', age: 18 }
exports.username = '张三'
module.exports.age = 18
// 4、指向:{ username: '张三', age: 18, sex: '男' }
exports = {
username: '张三',
age: 18
}
module.exports = exports
module.exports.sex = '男'
// module.exports===exports?: true
console.log('module.exports===exports?:', module.exports === exports)