如何遍历ExtJS应用程序中定义的所有类

如何遍历ExtJS应用程序中定义的所有类,extjs,extjs6,Extjs,Extjs6,在一个单页extjs6应用程序中,我需要扫描所有使用Ext.define方法声明的类,并找到那些实现特定mixin的类。为了简单起见,让我们假设我感兴趣的所有类都已加载,并且按需加载机制已退出游戏 除了通过privateExt.ClassManager.classesproperty进行迭代之外,似乎没有其他方法了。有更干净的选择吗 无论如何,上面给出了类名列表。如何确定相应的类是否实现特定的mixin function getClassesByMixin(mixin){ var cla

在一个单页extjs6应用程序中,我需要扫描所有使用
Ext.define
方法声明的类,并找到那些实现特定mixin的类。为了简单起见,让我们假设我感兴趣的所有类都已加载,并且按需加载机制已退出游戏

除了通过private
Ext.ClassManager.classes
property进行迭代之外,似乎没有其他方法了。有更干净的选择吗

无论如何,上面给出了类名列表。如何确定相应的类是否实现特定的mixin

function getClassesByMixin(mixin){
    var classes=[];
    Ext.iterate(Ext.ClassManager.classes,function(className,c){
        if(c.prototype &&c.prototype.mixins &&  c.prototype.mixins[mixin]){
            classes.push(className);
        }
    });
    return classes;
}

对于特定的视图/控制器类,您想迭代吗?不,在大多数情况下,这些是从Ext.Base派生的通用类。谢谢,Theo。我自己也提出了几乎相同的解决方案。只是想知道为什么Sencha没有提供干净的反射API