Javascript Ext继承-无法从基类/抽象类获取静态值

Javascript Ext继承-无法从基类/抽象类获取静态值,javascript,inheritance,extjs,Javascript,Inheritance,Extjs,这里有两个类,Shape和Rectangle——其中Rectangle继承自Shape。这里是父类: 这是我从父级继承的类: Ext.define('Rectangle', { extend: 'Shape', draw: function (Arrlenght,base.newShape) { var Arrlenght = inheritableStatics.drawnShapes.length; alert(Arrlenght); // I

这里有两个类,ShapeRectangle——其中Rectangle继承自Shape。
这里是父类:

这是我从父级继承的类:

Ext.define('Rectangle', {
    extend: 'Shape',
    draw: function (Arrlenght,base.newShape) {
        var Arrlenght = inheritableStatics.drawnShapes.length;
        alert(Arrlenght); // I need this array value?

        if (Arrlenght <= 10) {
            this.callParent();
        } else {
            console.log('Too many shapes drawn!');
        }
        console.log('Drawing a Rectangle...');
    }
});
Ext.define('Rectangle'{
扩展:“形状”,
绘制:函数(arlenght、base.newShape){
var Arrlenght=inheritableStatics.drawnShapes.length;
警报(Arrlenght);//我需要这个数组值吗?

如果(arrenght两个错误开始:

  • static
    应该是
    statics
    (复数)-不是因为您需要它,而是因为
  • inheritableStatics
    是一个配置属性,而不是运行时访问器,如果要在子类中使用这些变量,应该在
    Shape
    上定义它
Ext.define('Shape'{
// ...
可继承静态:{
绘图图形:['Shape1','Shape2']
}
});
然后,如果要引用静态变量,可以使用每个对象实例上存在的
self
属性,它基本上是对其原型/类的引用:

Ext.define('Rectangle'{
扩展:“形状”,
// ...
绘图:函数(/*args*/){
console.log(this.self.drawnShapes);//做一些事情
}
});
Ext.define('Rectangle', {
    extend: 'Shape',
    draw: function (Arrlenght,base.newShape) {
        var Arrlenght = inheritableStatics.drawnShapes.length;
        alert(Arrlenght); // I need this array value?

        if (Arrlenght <= 10) {
            this.callParent();
        } else {
            console.log('Too many shapes drawn!');
        }
        console.log('Drawing a Rectangle...');
    }
});