Extjs4 为什么Ext.grid.Panel会崩溃?

Extjs4 为什么Ext.grid.Panel会崩溃?,extjs4,gridpanel,Extjs4,Gridpanel,这导致: var grdMakes = Ext.extend(Ext.grid.Panel, { constructor: function(paConfig) { } } 这并不是: var grdMakes = Ext.extend(Ext.grid.Panel, { } 坠机原因是: Uncaught TypeError: Cannot read property 'added' of undefined 为什么添加构造函数会导致它崩溃?我可以使用其他对象进行此操作,例如:

这导致:

var grdMakes = Ext.extend(Ext.grid.Panel, {
  constructor: function(paConfig) {
  }
}
这并不是:

var grdMakes = Ext.extend(Ext.grid.Panel, {
}
坠机原因是:

Uncaught TypeError: Cannot read property 'added' of undefined
为什么添加构造函数会导致它崩溃?我可以使用其他对象进行此操作,例如:

var pnlMakesMaint = Ext.extend(Ext.Panel, {
    constructor: function(paConfig) {
    }
}  // just fine
编辑

为了澄清我想要做的是,我希望能够使用覆盖默认值的选项实例化一个对象

var g = new grdMakes({});  // defaults used

var g = new grdMakes({renderTo: Ext.getBody()}); // renderTo overridden
除了
Ext.grid.Panel

另外,我使用的是
extjs4

解决方案

事实证明,extend在extjs4中不受欢迎。所以我用了这个,它是有效的:

Ext.define('grdMakes', {
     extend: 'Ext.grid.Panel',

     constructor: function(paConfig) {
        var paConfig = Ext.apply(paConfig || {}, {
           columns:   !paConfig.columns ? [{
              header: 'Makes',
              dataIndex: 'make'
           }, {
              header: 'Description',
              dataIndex: 'description'
           }]: paConfig.columns,
           height:     !paConfig.height ? 400 : paConfig.height,
           renderTo:   !paConfig.renderTo ? Ext.getBody() : paConfig.renderTo,
           store:      !paConfig.store ? stoMakes : paConfig.store,
           title:      !paConfig.title ? 'Makes' : paConfig.title,
           width:      !paConfig.width ? 600 : paConfig.width

        });

        grdMakes.superclass.constructor.call(this, paConfig);
     }
}

好的。但是您的代码看起来像ExtJS3。因为ExtJS4版本中不推荐使用Ext.extend。您可以使用define代替extend。为了便于参考,您可以检查以下url:

好的,对于覆盖默认选项,这不是一个完美的方法。您需要使用Ext.override

例如:

Ext.override(Ext.grid.Panel,{
   lockable : true
});

如上所述,您必须覆盖默认选项。

您可以尝试使用Ext.override而不是Ext.extemd。我怀疑您试图用构造函数做什么?我的意思是您想要覆盖基本构造函数,或者您需要像使用方法一样使用它?相同的错误。我只想能够做这样的事情:
varg=newgrdmakes({})或者,能够:
var g=new grdMakes({renderTo:Ext.getBody()})
并覆盖默认值在ExtJS3或extjs4中尝试此操作吗?请参阅编辑以获得更好的说明。好的,我想知道。我们在这里继承了一些遗产。有没有一个我可以用来定义的例子?你可以在这里检查定义的工作,谢谢!我奖励你给我指出正确方向的答案。我将用我的解决方案更新我的问题。