动态调用JavaScript / ES7类中的静态方法

时间:2016-10-29 06:12:15

标签: javascript ecmascript-7 es6-class

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

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

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

1 个答案:

答案 0 :(得分:2)

当你想通过名称引用一个类时,它总是一样的 - 无论是实例化它,调用它上面的静态方法还是别的东西:你必须建立一个名称→类映射并查找它:

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

在你的情况下,它将是

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