Ext.extend的简单使用

有些时候,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);

 

你可能感兴趣的:(ext)