再说Node.js模块的导入导出

之前已经写过好几篇笔记了,但好像还是没有完全搞清楚,因为每次都是一些具体的问题,没有形成系统、完整的理解,这篇应该也不系统,但还是想记录几个点:

1. CommonJS规范中加载模块就是加载该模块的module.exports属性

// classA.js
class MClassA {
    constructor() {
        this.a = 100;
    }

    printA() {
        console.log(this.a);
    }
}

module.exports.MClassA = MClassA;
// main.js
const MClassA = require('./classA'); 
var a = new MClassA();
a.printA();

上面main.js这种写法是会报错的,因为classA.js导出的MClassA是exports属性上的属性,所以main.js导入时应该是下面解构式的写法:

const { MClassA } = require('./classA'); 

或者导出时这么写:

module.exports = MClassA;

2. 利用默认导出忽略导入模块的细节

// classB.js
export default {
    b: 100,
    bb: 1000
}
// main.js
import default as bo from './classB';
console.log(bo.b);


 

你可能感兴趣的:(JavaScript)