EXTJS 4.0 核心代码分析 (一)

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

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

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 中设定 类后处理器,在原始类创建完成后触发。it

默认的类预处理有:io

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

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

默认的类后处理有console

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

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

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

以上单身类例如:function

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

Logger.log('Hello');
相关文章
相关标签/搜索