扩充Ext组件

扩展Ext组件

扩展Ext组件

扩展(extension)在Ext中就是指衍生的子类。假设我们已经有一个附有一些方法的基类,现在欲加入新方法。我们可以利用框架的继承特性和JavaScript创建新类的语言特性组合新的一个类。

Ext提供了这样的一个实用函数Ext.extend在Ext框架中实现类继承的机制。这赋予了扩展任何JavaScript基类的能力,而无须对类自身进行代码的修改,扩展Ext组件这是个较理想的方法。

要从一个现有的类创建出一个新类,首先要通过一个函数声明新类的构造器,然后调用新类属性所共享的扩展方法。这些共享的属性通常是方法,但是如果要在实例之间共享数据,应该也一同声明。

JavaScript并没有提供一个自动的调用父类构造器的机制,所以必须通过属性superclass在构造器中显式调用父类。第一个参数总是this,以保证构造器工作在调用函数的作用域。

  1. 清单1.扩展Ext组件的基本方法  
  2.       
  3. MyNewClass=function(arg1,arg2,etc){  
  4. //显式调用父类的构造函数  
  5. MyNewClass.superclass.constructor.call(this,arg1,arg2,etc);  
  6. };  
  7. Ext.extend(MyNewClass,SomeBaseClass,{  
  8. myNewFn1:function(){  
  9. //etc.  
  10. },  
  11. myNewFn2:function(){  
  12. //etc.  
  13. }  
  14. }); 

使用时,我们需要实例化对象:

  1. 清单2.实例化新的组件对象  
  2.       
  3. varmyObject=newMyNewClass(arg1,arg2,etc); 

掌握了扩展Ext组件的基本方法之后,我们就可以随意构造满足特定需求的组件。然而Ext里已有的组件和示例永远是我们取之不尽,用之不竭的创造源泉。本文以三个Ext组件为基础,“嫁接”了其他组件的功能,形成三个新的组件,实现了现有Ext组件没有的功能。本文的目的,旨在抛砖引玉,希望能给初学Ext的同仁们一点启发和参考,开发出更多、功能更强大的组件。

 

 

http://developer.51cto.com/art/201005/202387.htm