Possible Duplicate:
Create instance of “Class” Using “Reflection” in JavaScript代替は
のJavaは、実行時にクラスをロードするためにClass.forName("XYZClass")
を持っています。 JavaScriptにClass.forName("XYZClass")
の代替語句はありますか?
Possible Duplicate:
Create instance of “Class” Using “Reflection” in JavaScript代替は
のJavaは、実行時にクラスをロードするためにClass.forName("XYZClass")
を持っています。 JavaScriptにClass.forName("XYZClass")
の代替語句はありますか?
個人的には、慣用的な構文を使用するのではなく、Javaコードを文字通りJavaScriptに変換しようとしていると思います(でも、Class.forName()
はJavaでも慣用ではありません)。ただし、試してみましょう:
function XYZClass() {
this.answer = 42;
}
これはあなたのクラスです。通常、あなたが使用して作成します。
この作品JavaScriptで " 反射" とvar xyz = new XYZClass();
:
var className = "XYZClass";
var xyz = new window[className]();
あなたのコードが正しく理解されず、エラー "TypeError:window [className]がコンストラクタではありません"が表示されます。 – gmuhammad
@gmuhammad: 'new window.XYZClass()'は動作しますか? http://stackoverflow.com/questions/9462881もご覧ください。同様のソリューションがあります。 –
私は今あなたの意見を持っています、最初に試してくださいXYZClassはグローバルとして宣言されていませんでした。今、私はそれをグローバルとして宣言し、現在は機能しています。そして今、私はそれが働いている、それはトップレベルのグローバル変数であるウィンドウを使用してクラス/関数にアクセスしている理由だ。 〜 :) – gmuhammad
何をしようとしますか? –
実際には、実行時にオブジェクトを作成しようとしています。私はクラスまたは関数名に関数に「MyClass」と答え、その関数はその名前に従ってオブジェクトを作成します。 – gmuhammad
実行時にJavascriptクラスをロードしようとしているようです。しかし、Javasriptにはクラスがありません。 –