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的这个工厂函数了。

拣尽寒枝不肯栖,寂寞沙洲冷。
郴江幸自绕郴山,为谁流下潇湘去?
欲将心事付瑶琴,知音少,弦断有谁听?
倩何人,唤取红巾翠袖,揾英雄泪!
零落成泥碾作尘,只有香如故!
原文地址:https://www.cnblogs.com/linjisong/p/2628618.html