Ext组件化编程是用initComponent还是constructor 好像2种“重写”的方法都可以实现组件化编程; 具体的项目中到底是试用那一种呢? 哪些情况下使用哪种方式呢?选择哪那一种的优势是什么呢? --constructor TsGrid = Ext.extend(Ext.grid.GridPanel, { constructor : function(){ TsGrid.superclass.constructor.call(this, { /*your code*/ }) }) --initComponent TsGrid = Ext.extend(Ext.grid.GridPanel, { initComponent : function(){ /*your code*/ TsGrid.superclass.initComponent.call(this); } )
2010-08-06 13:47
提问者采纳
1)initComponent这个方法是在Ext.Component的构造函数(constructor)中调用的,只有直接或间接继承自 Ext.Component的类才会在constructor里调用initComponent方法。这个方法是在constructor中被调用的,如果不调用,它默认不会在构造时被执行。而且你可以看一下Ext.Component的构造函数,在调用this.initComponent()这个方法前后都会有别的一些处理,所以这两个东西不等,不过一般的讲继承自Ext的组件的类,都会在new的时候调用到initComponent . 2)在一系列的继承中要注意的是,如果重写了构造函数,则应该在必要的时候调用超类(superclass)的构造函数,initComponent和onRender也一样。否则可能会造成一些不必要的麻烦。
评论
22
1