nodeJS里面的模块化

理解 this

打开cmd,执行如下命令

node
console.log(this);

输出如上信息,表示this是global,每个电脑的配置信息不一样的话,可能会有所差别的。

然后新建一个文件,写下如下代码,

console.log(this)

使用node命名执行你的文件,发现会输出:{}

this表示你当前操作的模块

理解 arguments

然后新建一个文件,写下如下代码,

console.log(arguments)

 使用node命名执行你的文件,发现会输出:

为什么能正确输出arguments呢,不是函数里面才有arguments吗?可是代码中没有看见跟函数有关的任何代码呀?

其实每个文件都是一个模块,模块中的代码默认就在闭包函数里面。默认的函数代码如下:

(function (exports, require, module, __filename, __dirname) {})()

我们发现还传入了一些参数,看看去是不是很眼熟呀!这里就不再介绍了,因为地球人都知道。。。。

nodeJS里面的模块是基于commonJS规范实现的,原理是文件的读写,导出文件要使用exports、module.exports,引入文件用require

每个文件就是一个模块

每个文件里面的代码会用默认写在一个闭包函数里面,避免冲突

问题

为什么要实现模块化呢?模块化有什么好处,你还知道有哪些模块化?

低耦合,高内聚:把实现相同功能的代码封装在一起,提高了重复利用率。

方便维护:模块化的管理我们的代码,更佳人性化。

防止代码冲突:通过闭包的形式来保护里面的变量不受外界的干扰

常见的客户端模块有CMD和AMD

CMD是就近依赖,AMD是依赖前置

原文地址:https://www.cnblogs.com/wuxianqiang/p/8358493.html