Ext.TabPanel多次继承以后报错
最近在项目对Ext.TabPanel进行继承发现一个问题
就是当对Ext.TabPanel进行多次的继承之后,给items里面家东西就会报错.
代码如下:
var TestExtend=Ext.extend(Ext.TabPanel,{})function TeEE(){
TeEE.superclass.constructor.call(this);
}
Ext.extend(TeEE,TestExtend,{/* //代码中加上这一段就会报错
items: [{
title: 'Tab 1',
html: 'A simple tab'
},{
title: 'Tab 2',
html: 'Another one'
}]*/})
// 当在TestExtend或者是TeEE中加上items时 执行这个会报错
check_TP2=new TeEE();//执行 这个则不会报错
check_TP2=new TestExtend();
代码中TestExtend继承了Ext.TabPanel, TeEE继承TestExtend.
使用TeEE的时候,在TestExtend或者是TeEE中加上items就会报错.
但是 单独使用TestExtend却没有任何问题
这个让人觉得Ext.TabPanel是不是不能多次继承,或则是我对Ext继承理解不够.
问题补充:
多谢解答
不过 我还是有疑问:
1、我的TeEE 是最终调用的类 ,而且只调用一次,这样这个错误就和引用无关
2、在 正常的TestExtend中 我会扩展一些自己的东西
为了简化问题,我连TestExtend 在继承Ext.TabPanel 类时完全简化。然后执行new TeEE().
直接这样继承也会有问题?
问题补充:
经过反复的测试
的确是和items这种引用类型有关
但是 我写成这样就可以,为什么?
function TeEE(config){
this.items=[
{
title: 'Tab 1',
html: 'A simple tab'
},{
title: 'Tab 2',
html: 'Another one'
}
]
TeEE.superclass.constructor.call(this, config);
}
Ext.extend(TeEE,TestExtend,{})