Reflection in JavaScript möglich?

PSP

Grünschnabel
Hallo!

Ist Reflection in JavaScript möglich? Damit meine ich jetzt nicht Reflectioneffekte für Bilder, sondern das Erzeugen von unbekannten Objekten ala:
Code:
function Klasse() {

}

// statt
var obj = new Klasse();

// soll
var str = "Klasse";
var obj = new str;

var a = "variable";
var b = "Wert";

// soll
obj.a = b;
Ist sowas in JavaScript möglich? Wenn ja, wie genau geht das?

Besten Dank schonmal ;)
 
Ob es so geht, wie du es geschrieben hast, weiß ich nicht, aber man könnte doch die Funktion eval()-Funktion nutzen:
Javascript:
var Command_NewClass = "var obj = new Klasse();"
eval(Command_NewClass);

obj.a = "Hello World!";
Somit kannst du dynamisch Klassen erzeugen.
 
Da die Funktion "Klasse" zu dem ihr umgebenen Block gehört (Funktionen sind ja auch Objekte), kannst du damit wie auch auf die Eigenschaften jedes anderen Objektes zugreifen (mit dem eckigen Klammer-Operator).

Javascript:
function Klasse() {
	this.variable = "Foo";

	this.funktion = function() {
		alert("Hallo!");
	}
}

var klassenName = "Klasse";
var klassenAttribut = "variable";
var klassenFunktion = "funktion";

var a = new this[klassenName]();

alert(a[klassenAttribut]);

a[klassenAttribut] = "Was neues!";

alert(a[klassenAttribut]);

a[klassenFunktion]();
 

Neue Beiträge

Zurück