关于JavaScript的一个模块化的基本实现
关于模块化:
1.IIFE立即执行函数——匿名闭包函数实现(闭包可以访问到外部的变量,但是外部的访问不到内部的变量)
2.全局引入,与第一种方法差异不大,只是闭包内读取全局变量是通过方法参数传递进来的
3.对象接口,封装的时候,定义一个变量等于一个返回一个对象的立即执行函数。然后使这些赋值给一个变量,这样就可以在全局中使用这个对象了
4.模块暴露
JavaScript现代标准介绍
- CommonJS 就是把不同的模块放在不同的文件中,每个文件都相当于一个闭包作用域,最后在主程序中引用这个文件使用。
module.exports require
- CommonJS加载模块是同步的,AMD的话就是异步模块定义,全称“异步模块定义”
与CommonJS相比较,同样是require方法,有以下不同:1.模块是从数组中拿,而不是从文件中拿 2.多了一个回调函数,回调函数中写具体业务逻辑
- UMD的出现是为了让代码既能在浏览器中使用,也能在服务器端使用。其实就是CommonJS和AMD合并了