EXTJS 4.0 核心代码分析 (一)

最近在着手做一个小型的WEBUI,正好ExtJS4.0放出,和ExtJs3.0对比,变化还是很大的。

这里先着重讲一下 ExtJs4.0 Class的实现:

ExtJs4.0中,涉及Class实现的主要是Ext Core , Ext.Class, Ext.Base, Ext.ClassManager 这几个对象

在ExtJs4.0中,声明类的方式改为了 Ext.define('ClassName',{}); 这个方法其实是Ext.ClassManager.create的一个别名,在这个过程中,首先通过 Ext.Class建立原始Class,填充应用Ext.define中的配置信息,类预处理器。

Ext.ClassManager 中设定 类后处理器,在原始类建立完成后触发。

默认的类预处理有:

Class.setDefaultPreprocessors(['extend', 'statics', 'inheritableStatics', 'mixins', 'config']);

分别用于 从Ext.Base中继承始祖类方法属性,设置类静态成员,可继承静态成员,类集,类配置

默认的类后处理有

Manager.setDefaultPostprocessors(['alias', 'singleton', 'alternateClassName']);

分别用于 设置别名,是单身类(类似静态类),交替类名。

由此基本完成一个Class的建立,当然,以上只是粗略的一说,在实际建立过程中,还会作很多工作,比如:父类的设定,类中this的指定等等,同时,Ext.ClassManager中也有很多的方法用于管理已有类,生成新类等等。

以上单身类例如:

Ext.define('Logger', {
    singleton: true,
    log: function(msg) {
        console.log(msg);
    }
});

Logger.log('Hello');

你可能感兴趣的:(JavaScript,ExtJs)