[英]ecmascript 6 how to call a static class methode by reflection
所以我想通過反射使用字符串className和字符串方法名稱來調用es 6靜態類方法。 我嘗試了幾種方法。 不幸的是,我似乎沒有找到正確的方法來做到這一點。
順便說一句(如下面的評論中所述),我正在尋找一種解決方案,將從dom屬性中獲取類的名稱和方法的名稱,因此它們必須是字符串。
有人可以幫忙嗎?
class a{ static b(nr){ alert('and the answer is' + nr) } } let aClassName = 'a', aMethodeName = 'b', theCompleteCall = 'a.b', anArgument = 42; //Reflect.apply(theCompleteCall,anArgument); //window[aClassName][aMethodeName](anArgument); //window[theCompleteCall](anArgument);
由於let
和class
並沒有像您期望的那樣在全局范圍內聲明( 更多內容 ),因此您需要在可訪問的范圍內聲明您的類,如下所示:
window.a = class a{
static b(nr){
alert('and the answer is' + nr)
}
}
let aClassName = 'a',
aMethodeName = 'b',
theCompleteCall = 'a.b',
anArgument = 42;
然后,您可以進行反射調用,如下所示:
window[aClassName][aMethodeName](anArgument)
因此,解決方案是在聲明它們時提供范圍,並通過該范圍對其進行訪問。
您正在將變量設置為字符串,而不是對對象的引用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.