PhoneGap源码分析4——导入cordova

跟随代码的执行,在定义了require和define并赋值后,是将cordova所有模块一一注册,例如:

define("cordova",function(require,exports,module){
//工厂函数内部实现代码
});

这里需要注意的是,工厂函数在这个时候并没有实际执行,而只是定义,并作为一个参数传递给define函数。
所有模块注册完之后,通过

window.cordova = require('cordova');

导入至全局环境。

因为是注册后第一次导入,所以在执行require('cordova')时,modules['cordova'].factory的值是注册时的工厂函数,转变为boolean值时为true,从而在这里会通过build调用这个工厂函数,并将这个工厂函数从注册缓存里面删除。

接下来的就是去执行cordova的这个工厂函数了。

 

你可能感兴趣的:(PhoneGap源码分析4——导入cordova)