在单页ExtJS 6应用程序中,我需要扫描所有使用Ext.define
方法声明的类,并找到那些实现特定mixin的类。为简单起见,我们假设我感兴趣的所有类都已加载,并且按需加载机制已不在游戏中。
似乎没有其他方法可以通过私有Ext.ClassManager.classes
属性进行迭代。有更清洁的选择吗?
无论如何,上面给出了类名列表。如何判断相应的类是否实现了特定的mixin?
答案 0 :(得分:1)
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;
}