专业回答
主要是为了覆盖父类的同名方法...但是又需要父类方法同样的动作的时候...
//比如一个grid父类
Ext.define("baseGrid" , {
extend: "Ext.grid.Panel" ,
initComponent: function(){
//这里设置表格的工具栏 , 用一个createDockedItems方法生成
this.dockedItems = this.createDockedItems();
this.callParent();
} ,
//这里是生成表格的工具栏 , 默认的只有一个分页栏
createDockedItems: function(){
return [{
xtype:"paging" , dock:"bottom" , store: this.store
}]
}
});
//然后grid1继承这个类
Ext.define("grid1" , {
extend: "baseGrid" ,
//这里grid1不仅有分页栏 , 还需要有添加 , 修改 , 删除的工具栏
createDockedItems: function(){
var tbs = this.callParent(); //这里调用callParent , 就是父类的方法 , 返回父类方法中的内容 , 就是那个分页栏
//这里添加一个新的工具栏 , 包括添加修改按钮
tbs.push({ xtype:"toolbar" , items:[
{text:"添加"} ,
{text:"修改"}
]});
return tbs;
}
});
//其实主要作用是为了覆盖 , 而同时又不是全部都覆盖 , 所以有了这个方法
本文解释了ExtJS中组件初始化过程中使用 this.callParent 的作用,即子类如何在覆盖父类方法的同时保留父类的功能。通过具体示例展示了如何在子类中扩展父类的initComponent方法。
1万+

被折叠的 条评论
为什么被折叠?



