每个自己js文件都是一个自定义模块
导入模块:导入时会运行模块
const m = require('./1.js')
模块作用域
在自定义模块的函数、变量等不能被其他js文件使用,但可以用exports将成员共享
module(储存了当前模块的有关信息)
console.log(module)
module.exports(对外的接口)
被导入文件(1.js):
/**
* exports和 module.exports始终以后者为准(建议只用后者)
* 一开始exports和 module.exports指向同一初始对象
*/
exports.a = 'a';
module.exports.b = 'b';
// { a: 'a', b: 'b' }
//创建新module对象,exports!==module.exports
module.exports = {
name: 12,
a: 'b'
}
// { name: 12, a: 'b' }
// 添加到新对象中,相同会覆盖
module.exports.a = 'c'
module.exports.age = 'age'
// { name: 12, a: 'c', age: 'age' }
运行文件:
const m = require('./1.js')// require导入模块
console.log(m)// m是一个对象{}