2016-10-29 6 views
0

私は文字列変数にclassNameを持っています。動的クラスでaddField静的メソッドを呼びたいと思います。JavaScript/ES7クラスで静的メソッドを動的に呼び出し

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

CustomClientは、ES7クラスの名前です。 addFieldは静的メソッドです。 addFieldを動的に呼び出す必要があります。クラスは、CustomClient、CustomContract、またはCustomUserのいずれかになります。

+0

あなたはクラス 'CustomClient'のインスタンスを作成する必要がありますか? –

+0

いいえ、クラスの静的メソッドを呼び出すだけです。 – vijayst

+0

モジュールを使用していますか?もしそうなら、おそらくそのクラスをインポートする必要があります –

答えて

2

名前でクラスを参照したいときには常に同じだ - それをインスタンス化するかどうか、静的その上でメソッドまたは何か他のものを呼び出すために:あなたは名前→クラスマップを作成し、それを見てする必要があります。

あなたのケースでは

const classes = { 
    "CustomClient": CustomClient, 
    … 
} 
var classRef = classes[className]; 
、それは次のようになり

const classes = {CustomClient, CustomContract, CustomUser}; // shorthand notation 
classes[className].addField(); 
関連する問題