ext/src/Ext-more文件中:
/** * Loads Ext.app.Application class and starts it up with given configuration after the * page is ready. * * See `Ext.app.Application` for details. * * @param {Object/String} config Application config object or name of a class derived from Ext.app.Application. */ Ext.application = function(config) { var App, paths, ns; if (typeof config === "string") { Ext.require(config, function(){ App = Ext.ClassManager.get(config); }); } else { // We have to process `paths` before creating Application class, // or `requires` won't work. Ext.Loader.setPath(, config.appFolder || 'app'); if (paths = config.paths) { for (ns in paths) { if (paths.hasOwnProperty(ns)) { Ext.Loader.setPath(ns, paths[ns]); } } } config['paths processed'] = true; // Let Ext.define do the hard work but don't assign a class name. // Ext.define 详见 wangyuelucky.blog.51cto.com/1011508/1594628 Ext.define( + ".$application", Ext.apply({ extend: 'Ext.app.Application' // can be replaced by config! }, config), // call here when the App class gets full defined function () { App = this; }); } Ext.onReady(function() { // this won't be called until App has been created and its requires have been // met... Ext.app.Application.instance = new App(); }); };