3. 自定义模块

2021-11-30
2 min read
Featured Image
/*
  每一个 js 文件天生自带一个变量叫做 module
  Module {
    id: '.',
    // 当前文件的存储路径
    path: 'E:\\BK_GP_20\\05_第五周\\05_DAY\\01_代码\\05_自定义模块',
    // 我向外暴露的内容, 我允许别人使用的我这个文件里的某些内容
    exports: {},
    // 哪些文件再引用着我
    parent: null,
    // 当前这个文件的文件名称(带有绝对路径)
    filename: 'E:\\BK_GP_20\\05_第五周\\05_DAY\\01_代码\\05_自定义模块\\a.js',
    // 我有没有被导入过
    loaded: false,
    // 我引用了哪些其他文件
    children: [],
    // 你下载的第三方模块的存储路径
    paths: [
      'E:\\BK_GP_20\\05_第五周\\05_DAY\\01_代码\\05_自定义模块\\node_modules',
      'E:\\BK_GP_20\\05_第五周\\05_DAY\\01_代码\\node_modules',
      'E:\\BK_GP_20\\05_第五周\\05_DAY\\node_modules',
      'E:\\BK_GP_20\\05_第五周\\node_modules',
      'E:\\BK_GP_20\\node_modules',
      'E:\\node_modules'
    ]
  }
*/

  • 导出语法:
    • 在一个文件中向外导出一些内容使用
    • module.exports 想这个对象里面添加成员就可以
    • 也可以直接把 module.exports 替换掉
  • 导入语法:
    • require(' 指定文件路径')
    • 作用: 导入该文件( 路径后如果后缀是 .js 可以省略不写)
    • 返回值:就是指定文件内部的 module.exports
// a.js

const num = 100
const boo = true

function timeA() { console.log('Function timeA in a.js.')}
function timeB() { console.log('Function timeB in a.js.')}

module.exports = {
    timeA,
    timeB // 对象简写形式
}

// b.js

module.exports = {
    B_A () { console.log('Function B_A in b.js.')},
    B_B () { console.log('Function B_B in b.js.')}
}

// index.js
const modA = require('./a.js') // 返回 { timeA, timeB }
modA.timeA() // Function timeA in a.js

const { B_A } = require('./b')
B_A() // Function B_A in b.js
  • CMD

    define(function(require, exports, module){
        require()
        module.exports = {}
    }) 
    
Avatar
Aaron Fan My research interests include machine learning, signal processing, web development and robotics.