导入导出模块

导入模块

导入模块的步骤

导入模块分为五个步骤

  1. 解析导入的代码

image

  1. 包装

image

  1. 执行
  2. 返回模块

image

  1. 缓存,模块在第一次加载的时候就缓存下来了,第二次请求相同的模块的时候不会重新请求

image

导入模块的方法

  1. module.exports

    test-module-1.js两种方式

    ①写完类再导出

    class Calculator {
      add(a, b) {
        return a + b;
      }
    
      multiply(a, b) {
        return a * b;
      }
    
      divide(a, b) {
        return a / b;
      }
    }
    
    module.exports = Calculator;
    

    ②直接导出类

    module.exports = class {
      add(a, b) {
        return a + b;
      }
    
      multiply(a, b) {
        return a * b;
      }
    
      divide(a, b) {
        return a / b;
      }
    };
    
    

    最后引入类

    // module.export
    const C = require("./test-module-1");
    const calc1 = new C();
    console.log(calc1.add(2, 5));
    
  2. exports

    test-module-2.js

    exports.add = (a, b) => a + b;
    exports.multiply = (a, b) => a * b;
    exports.divide = (a, b) => a / b;
    

    导入的方式有两种

    ①按照变量的方式导入

    // exports
    const calc2 = require("./test-module-2");
    console.log(calc2.multiply(2, 5));
    

    ②用es6解构赋值的方式导入

    // 这里用es6的解构赋值
    const { add, multiply, divide } = require("./test-module-2");
    console.log(multiply(2, 5));
    

缓存的例子

test-module-3.js

console.log("Hello from the module");

module.exports = () => console.log("Log this beautiful text ♥");

导入然后直接执行

// caching
require("./test-module-3")();
require("./test-module-3")();
require("./test-module-3")();

输出结果:

image-20220615213313174

证明缓存是存在的,只请求了js文件一次

posted @ 2022-06-18 02:42  kihyun  阅读(62)  评论(0编辑  收藏  举报