JavaScriptにおいて、モジュールはカプセル化のための機構でもある。
const myModule = (() => {
const privateFoo = () => {}
const privateBar = []
const exported = {
publicFoo: () => {},
publicBar: () => {}
}
return exported
})()
/* -------------------------------------------------------------------------- */
console.log(myModule)
// 結果:
// { publicFoo: [Function: publicFoo], publicBar: [Function: publicBar] }
exports.info = (message) => {
console.log('概要:' + message)
}
exports.verbose = (message) => {
console.log('詳細:' + message)
}
const logger = require('./logger')
logger.info('一般情報提供用のメッセージ')
// 結果:
// 概要:一般情報提供用のメッセージ
logger.verbose('詳細情報提供用のメッセージ')
// 結果:
// 詳細:詳細情報提供用のメッセージ
module.exports = (message) => {
console.log(`概要:${message}`)
}
module.exports.verbose = (message) => {
console.log(`詳細:${message}`)
}
const logger = require('./logger')
logger('一般情報提供用のメッセージ')
logger.verbose('詳細情報提供用のメッセージ')
// 結果:
/**
* 概要:一般情報提供用のメッセージ
* 詳細:詳細情報提供用のメッセージ
*/