珍しいケースを除き、JavaScriptのeval() is considered bad practice。JavaScript、Eval、New - 貧しい人の工場
文字列を受け取り、その型名でオブジェクトを作成するコードの断片に遭遇しました。 (より速く、より安全、クリーン、および/または)evalを使用せずに、クラス作成を達成するための方法を
function factory(klass) { eval("var obj = new " + klass + "()"); // Is there a better way? return obj; }
が良くはあります。エラーチェック、ビジネスロジック、およびコンテキストので削除行うため、ここでは次のようになります。?
私はその名前によってクラスを作成するための汎用的な方法を探しています。
例えば、コードの別の部分がJavaScriptファイルを動的にロードしたり、コードを生成したり、ユーザーの拡張を許可するとしたら、そのコードの他の部分は、存在。
エラーチェック、ら。 al。は、StackOverflowの簡潔な例を作るために削除されました。 –
なぜそれの背後にあるのかをあまり気にせずに、klassは文字列です。矛盾は、eval()を使用せずに同じ入力を使用して、論理的に同等の処理を行う方法を見つけることでした。 –