2017-09-19 5 views
0

私はnodejsサーバーを作っています。私は異なるクラスを動的にロードする必要があるシステムを作っています。クラスの名前は文字列です。で動作するように何のウィンドウがありませんので、これはnodejsあるので、私はすでにwindow[classname]が、この文句を言わない仕事をしようとしたJavaScript文字列からクラスを呼び出す方法

var classname = "foo"; // this is the name of the class I want to call. 

var bar = new classname //classname needs to be foo in this example. 

:それはこのようになります。

は読みいただき、ありがとうございます:)

答えて

1

より良いアプローチは、JSONオブジェクトを利用することです。これを実現するには、キーが変数に対応するところにいつでもkey:value JSONオブジェクトを置くことができます。以下の例を参照してください。変数classnameあなたが簡単にあなたが新しいクラスを作成しているかのようにシミュレートすることを参照することができ、実際にJSONオブジェクトobjkeyです:

var obj = { 
    classname : 'foo' 
}; 

var bar = new obj['classname']; 
+0

最後の行に 'classname'を文字列で折り返すのはなぜですか? –

+0

これは '変数'ではないので、変数名を使わないで大括弧を使ってアクセスしているときは、 'new obj.classname;'も行うことができます。他にも引用符が必要です。 –

+0

これをes6クラスでも使えますか? –

2

eval("new " + classname)が、 "用心、eval is evil" など

+0

うわーは非常に有用であったリンクをありがとうございました。私の場合、クラス名はurlから来るので、私はevalを使うことはできません。 –

関連する問題