2013-11-27 77 views

回答

1

我推薦埃文斯回答!

但還有其他方法可以通過使用getXTypes()方法在組件級別執行此操作,該方法以字符串形式返回xType鏈。

如果搜索到的部件(組件)是字符串的一部分,您需要查找。

var splitted = ref.getXTypes().split('/'), 
    len = splitted.length, 
    i = 0; 

for(;i < len; i++) { 
    if(lookupType == splitted[i]) 
     // do something 
} 

編輯

由於另一個問題,我絆倒了,似乎工作的另一種方式。

您可以使用self,superclass$className屬性在類層次結構中向上導航。

這裏有一個例子:

Ext.getCmp('customform-1746').self.superclass.$className // echo Ext.form.Panel 
Ext.getCmp('customform-1746').self.superclass.self.superclass.$className // echo Ext.panel.Panel 

你可以簡單的構建,檢查遞歸方法,並返回要麼truefalse。但再次,instanceof運營商可能在這裏更快!

2

JS有一個instanceof運算符:

Ext.define('A', { 
}); 

Ext.define('B', { 
    extend: 'A' 
}); 

Ext.define('C', { 
    extend: 'B' 
}); 

Ext.define('D', { 
}); 

console.log(new B() instanceof A); 
console.log(new C() instanceof A); 
console.log(new D() instanceof A); 
相關問題