我在字符串变量中有className。我想在动态类上调用addField静态方法。

const className = "CustomClient"; // comes from dropdown.
CustomClient.addField();


CustomClient是ES7类的名称。 addField是静态方法。我想动态调用addField。该类可以是CustomClient,CustomContract或CustomUser之一。

最佳答案

当您想按名称引用一个类时,无论是实例化它,在其上调用静态方法还是其他方法,它总是一样的:您必须建立一个名称→类映射并查找它:

const classes = {
    "CustomClient": CustomClient,
    …
}
var classRef = classes[className];


在您的情况下,

const classes = {CustomClient, CustomContract, CustomUser}; // shorthand notation
classes[className].addField();

09-19 15:42