模块化总结

Node CommonJS

1.CommonJS是 “运行时加载”
2.require() 是加载整个 “对象”
3.最终导出的是module.exports,exports只是对module.exports的一个全局引用,exports.myFunc是modules.exports.myFunc的简写

  1. exports
// src/dog/index.js
exports.bar = function (a, b) {
    console.log('wang wang!!');
}

exports.age = 10;


//test/test.js
var {bar, age} = require('../src/dog'); 
var add2 = require('../src/add2');
bar(); // wang wang !!
age; // 10
add2.bb; // 123
  1. module.exports
// src/add.js
module.exports = function (a, b) {
    return a + b ;
}

// src/dog.js
module.exports = {
    age: 5,
    bar: function () {
        console.log('wang!');
    }
}
//test/test.js
var add = require('../src/add');
var dog = require('../src/dog');

add(1, 2); // 3
dog.age; // 5
dog.bar(); // wang!

es6

  1. 没法引用 ES6 模块本身,因为它不是对象
// 从fs模块加载 3 个方法,其他方法不加载。这种加载称为“编译时加载”或者静态加载
import { stat, exists, readFile } from 'fs';

你可能感兴趣的:(模块化总结)