有些时候,Ext提供的组件已经不能满足我们的需要,这时我们就需要在Ext组件的基础上进行扩展。以达到代码复用
接下来就已扩展Ext.form.ComboBox为例写一个简单的例子:
//设置命名空间 Ext.namespace('un'); //构造函数 un.ComboBox=function(config){ /** * 在这里写我们的私有代码 */ if(config.store===undefined){ config.store=new Ext.data.SimpleStore({ data:[["1",'测试1'],[2,"测试2"]], fields:["id","name"] }); config.displayField="name"; config.valueField="id"; config.mode="local"; } Ext.apply(this, config);//该句很重要 un.ComboBox.superclass.constructor.call(this); } //让组件un.ComboBox继承Ext.form.ComboBox Ext.extend(un.ComboBox,Ext.form.ComboBox,{ initComponent : function(){ /** * 写自己的私有实现 */ un.ComboBox.superclass.initComponent.call(this); }, initEvents : function(){ /** * 写自己的私有实现 */ un.ComboBox.superclass.initEvents.call(this); }, onRender:function(ct, position){ /** * 写自己的私有实现 */ un.ComboBox.superclass.onRender.call(this,ct,position); } }); //注册类型 Ext.reg('myCombo', un.ComboBox);