Javascript ecmascript 6如何通过反射调用静态类methode
所以我想调用一个ES6静态类方法 通过使用字符串类名称和字符串方法名称进行反射。 我试过几种方法。不幸的是,我似乎没有找到正确的方法 顺便说一句(如下面的注释所述),我正在寻找一个解决方案,在这个解决方案中,我将从dom属性中获取类的名称和方法的名称,因此它们需要是一个字符串 有人能帮忙吗Javascript ecmascript 6如何通过反射调用静态类methode,javascript,reflection,ecmascript-6,static,es6-class,Javascript,Reflection,Ecmascript 6,Static,Es6 Class,所以我想调用一个ES6静态类方法 通过使用字符串类名称和字符串方法名称进行反射。 我试过几种方法。不幸的是,我似乎没有找到正确的方法 顺便说一句(如下面的注释所述),我正在寻找一个解决方案,在这个解决方案中,我将从dom属性中获取类的名称和方法的名称,因此它们需要是一个字符串 有人能帮忙吗 a类{ 静态b(nr){ 警报('答案为'+nr) } } 让aClassName='a', aMethodeName='b', 完成调用='a.b', 辩论=42; //反思。应用(完成调用、辩论); /
a类{
静态b(nr){
警报('答案为'+nr)
}
}
让aClassName='a',
aMethodeName='b',
完成调用='a.b',
辩论=42;
//反思。应用(完成调用、辩论);
//窗口[aClassName][aMethodeName](辩论);
//窗口[完成调用](辩论)
您正在将变量设置为字符串,而不是对象的引用。由于让和类未按预期()在全局范围内声明,因此您需要在可访问的范围内声明类,如下所示:
window.a = class a{
static b(nr){
alert('and the answer is' + nr)
}
}
let aClassName = 'a',
aMethodeName = 'b',
theCompleteCall = 'a.b',
anArgument = 42;
然后,您可以使用反射调用,如下所示:
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](辩论)
因此,解决方案是在声明它们时提供一个作用域,并通过该作用域访问它们。是的,这是正确的,这正是我想解决的问题。我将从dom中获取属性的字符串。我将编辑我的问题,使其更清楚,谢谢