我在字符串变量中有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();