模块化(一)

83 阅读2分钟

到底什么是模块化、模块化开发呢?

事实上模块化开发最终的目的是将程序划分成一个个小的结构;

这个结构中编写属于自己的逻辑代码,有自己的作用域,不会影响到其他的结构;

这个结构可以将自己希望暴露的变量、函数、对象等导出给其结构使用;

也可以通过某种方式,导入另外结构中的变量、函数、对象等;

上面说提到的结构,就是模块;按照这种结构划分开发程序的过程,就是模块化开发的过程;

无论你多么喜欢JavaScript,以及它现在发展的有多好,它都有很多的缺陷:

比如var定义的变量作用域问题;

比如JavaScript的面向对象并不能像常规面向对象语言一样使用class;

比如JavaScript没有模块化的问题;

JS本人也多次承认过JavaScript设计之初的缺陷,但是随着JavaScript的发展以及标准化, 存在的缺陷问题基本都得到了完善

模块化的历史

在网页开发的早期,Brendan Eich开发JavaScript仅仅作为一种脚本语言,

做一些简单的表单验证或动画实现等,那个时候代码还是很少的:

这个时候我们只需要讲JavaScript代码写到

并没有必要放到多个文件中来编写;甚至流行:通常来说 JavaScript 程序的长度只有一行。

但是随着前端和JavaScript的快速发展,JavaScript代码变得越来越复杂了:

ajax的出现,前后端开发分离,意味着后端返回数据后,我们需要通过JavaScript进行前端页面的渲染; SPA的出现,前端页面变得更加复杂:包括前端路由、状态管理等等一系列复杂的需求需要通过JavaScript来实现; 包括Node的实现,JavaScript编写复杂的后端程序,没有模块化是致命的硬伤;

所以,模块化已经是JavaScript一个非常迫切的需求:

但是JavaScript本身,直到ES6(2015)才推出了自己的模块化方案;

在此之前,为了让JavaScript支持模块化,涌现出了很多不同的模块化规范:AMD、CMD、CommonJS等;

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第10天,点击查看活动详情