一年前,刚来网易实习的时候接触了NEJ,那是第一次接触模块化开发,感觉想出这个idea的人简直是天才,同时也对于这种框架的实现非常好奇,惭愧的是,那时甚至连jQuery的原理都不知道。
随着这一年对于JS面向对象的理解有所加深,看着《JavaScript设计模式》就跟着自己动手码码代码,所以这是一篇读书笔记,并不是发明创造,并且这个加载器是比较简陋的,很有改进空间。
模块的长相
模块采用的是匿名模块,它的js绝对路径作为它的惟一标识:
define([ '{lib}dom', '{pro}extend' ], function(dom, extend) { //TODO})异步加载的思路
从上面我们可以看出,模块是由define函数来定义,传入参数为:依赖列表和回调函数,为了实现依赖注入,要等到依赖列表的所有js加载完后再来执行回调函数。
所以第一步,我们循环遍历依赖列表,然后依次加载列表的模块,可想而知,在循环遍历加载模块的代码的结构应该是下面这样子的:
//modules = ['lib/dom

