Node:模块化是怎样实现的

84 阅读1分钟

模块化Module

模块有两个必备的功能:可复用,不冲突。

可复用让其他用这个模块的开发者不用重复造轮子;而做到不冲突,是 不同执行环境作用

前端主流的三大框架,都有模块这个概念,但它实际起源于Node这个被用来写服务器的C++程序。写在Node核心代码里有一个名为module.js的文件。

Module是跟JS中其他的东西一样,它也是一个对象。但比较特别的是,它是一个构造函数(函数也是对象)。

main.js里写入:

var myName = 'boolean';
var a = require('./app.js');
console.log(myName);

app.js文件中的内容:

var myName = function() {
    'Brynn';
    console.log(myName);
}
module.exports = myName;

var a = require('./app.js');实现了模块的导入,requireModule给我们的一个方法,底层实际上是把app.js文件,包装成一个立即执行函数。

(function(exports, require, module, __filename, __dirname){
     var myName = 'Brynn';
    console.log(myName);
})