把Ext类的方法和属性进行归类:
兼容性
| Ext类不可能提供浏览器的兼容具体的处理。因为兼容处理只能落实具体的方法中。它提供了一组属于用来判断用户使用的浏览器、操作系统等,在需要兼容处理的地方只要直接调用这些属于就可以进行判断再来进行相关的兼容处理。 isAir、isBorderBox、isGecko、isIE、isIE7、isLinux、isMac、isOpera、isSafari、isStrict、isWindows这些属性是Ext类提供的兼容方面的属性。这些属性大部分是从navigator.userAgent来获取到的。 |
重用性
| Ext类中提供二组关于代码重用的方法。 第一组是apply,applyIf函数,它实现把对象内部的方法或属于直接复制到另外一个对象。这是最基础的继承方式。 第二组是extend,override函数,这一组是高级继承方式,它不仅仅是把一个函数的方法和属性复制到另外一个函数的原型中去,它还要建立其两者之间的父子链的关系。 |
组件入口 | Ext类中提供了组件的入口getCmp(id)函数。 每个组件都有id属性,只要定义时给定其值,之后在任何地方都通过Ext.getCmp(id)来获得该对象的引用。这为全局管理组件提供了方便。其是Ext.ComponentMgr.get的简化。这一部分内部在后面的章节会详细地讲解。 |
元素入口
| 所有Js类库的最终目的都是对于Dom元素进行操作。Ext对Dom元素进行封装为Element元素。但是在Ext类也提供了很多这方面的方法。 1、事件处理。Ext类提供了addBehaviors和onReady两个事件处理函数。一个是监听DomReady,一个是给所指定的元素注册事件监听。 2、获取元素。fly、get是根据参数获取元素的两种不种的处理方式。getBody、getDoc则是获到指定Dom的元素。而getDom是从封装的Element元素中获取其原始的Dom元素。 3、查询Dom树。query、select是两个CSS语法兼容的Dom query方法。通过这两个方法能方便地用Dom树中找到元素。 4、删除元素:removeNode、destroy是为了删除元素,释放内存而给出的。destroy还能删除组件。 |
实用方法 | Ext类提供如下四类的实用方法: 1、type类型。Js的typeof只能判断最原始的类型,如Array是返回是Function,而new Array()则是数组。对于dom元素不能深入去判断其节点类型。Ext.type则指代了更为精准的判断。它还提供了isArray、isDate等类型判断函数。 2、命名空间。Ext.namespace()函数能动态生成指定的命名空间。 3、格式转换。Ext类提供了decode、encode 方法实现string和json对象之间的相互转换。还提供了urlDecode、urlEncode方法来进行查询字符串和JS对象进行的相互转换。在3.4节中分析。 4、其它:在new RegExp时,对于正则的字符串中的特殊符号要进行特殊的处理,Ext.escapeRe 就是进行这样的操作。 Ext.each是集合的元素都进行相类似的操作,如Fn的操作。这是很常用的函数。 |
把Ext类提供的功能分成了五部分。对着Ext类的源码自行分析。