Konkret: Mit Skriptsprachen wie Ruby oder Groovy oder ähnlichem ist das ja laut Dokumentation möglich, mit Java aber nicht. Was genau ist jetzt damit gemeint wenn da steht "..sind im Gegensatz zu Java dynamische Konstruktionen möglich, es sind also Änderungen zur Laufzeit möglich"
Wäre nett wenn da jemand eine kleine Erklärung parat hat.
D.h. das während des Skriptes Objekte beliebig geändert werden können. Neben dem von Sven erwähnten eval (was ich in Perl relativ häufig verwende) sind das so banale Dinge, wie einem Objekt eine neue Funktion gönnen. Als Java Programmierer kennt man vermutlich diese Orgien von Setter- und Getterfunktion, auch wenn sich er IDEs gibt, die dabei helfen, ist das doch mühsame Handarbeit.
In JS kann man sich die Arbeit sparen
function Fields( fields ) {
var private_data = {};
for(var i = 0; i < fields.length; i++)
this[fields[i]] = function(val) { // <-- Das ist die entscheidene Zeile
if(typeof val != 'undefined') private_data[fields[i]] = val;
return private_data[fields[i]];
};
}
function ClassCreator() {
function C() {}
C.prototype = new Fields( ['feld1', 'feld2', 'feld3'] );
C.constructor = C;
return new C();
}
var x = ClassCreator();
var y = ClassCreator();
x.feld1('test x');
y.feld1('test y');
alert(x.feld1())
alert(y.feld1())
Struppi.