Elegantes OOP in JavaScript

Pius Hermit

Erfahrenes Mitglied
Hallo Zusammen.
Ich bin gerade bei einem temporären Codereview, und suche eine Möglichkeit,
ähnlich wie in Java einen ARRAY eines Objektes anzulegen. Weder in meiner spezifischen Literatur, noch im Web habe ich dazu befriedigende Lösungen gefunden.

Metasprache:
Code:
Test[] = Array[] of Testobjekt{
                    Eigen1 = 0;
                    Eigent2 = 1;
                    function getEigen1(){
                       return Eigen1;
                     }
                    function getEigen2(){
                       return Eigen2;
                     }
                    function setEigen1(e){
                       Eigen1 = e;
                     }
                    function setEigen2(e){
                       Eigen2 = e;
                     }
Kennt sich jemand mit OOP bei JavaScript (speziell dieses Konstrukt) vielleicht aus?
 
JavaScript hat eine dynamische Typisierung. Das heißt, eine Variable ist nicht an einen Datentyp gebunden sondern kann beliebige Datentypen annehmen.
Java hingegen hat eine statische Typisierung. Dort muss der Datentyp bereits zur Übersetzung feststehen. Deswegen auch die explizite Deklaration des Datentyps bei Arrays.

Worauf ich hinaus will: Du kannst höchstens im Nachhinein prüfen, ob die Werte eines Array alle desselben Typs sind, beispielsweise:
Code:
for (var i in Test) {
	if (!(Test[i] instanceof Testobjekt)) {
		throw new Exception();
	}
}
 
Danke erst einmal für die schnellen Antworten!
Ich hatte mir das bspw. so gedacht:
Code:
1	function VBilder(links, oben, rechts, unten, steigend) {
2		this.bild = new Array(); 
3		this.links = links;
4		this.oben = oben;
5	.
6	.
7	.
8	.
9	VBilder.prototype.push = function(s) {
10		this.anzahl++;
11		this.bild[this.anzahl].bild = document.createElement("img");
12		this.bild[this.anzahl].bild.id = "bild"+this.anzahl;
13		this.bild[this.anzahl].bild.src = s;
14		this.bild[this.anzahl].bild.style.position = "absolute";
15	.
16	.
17		this.bild[this.anzahl].hoehe = .....
18	.
19	.
Kann ich nicht auf den Array (Zeile2)
wie in Zeilen 11 und 17 zugreifen?
Firefox meldet, dass this.bild[this.anzahl] unbekannt sei?!:confused:
 
Hallo Sven,
danke für die Mühe, aber daran lag es nicht...
Der folgende Code funktioniert:
Code:
1		.
2		.
3		.
4		.
5	function VBilder(links, oben, rechts, unten, steigend, schrittweite, maxunten, hintergrund){
6		this.links = links;
7		this.oben = oben;
8		this.rechts = rechts;
9		this.unten = unten;
10		this.steigend = steigend;
11		this.maxunten = maxunten;
12		this.bild = new Array();
13		this.hoehe = new Array();
14		.
15		.
16		.
17		.
18	this.push = function(s){
19		this.anzahl++;
20		this.bild[this.anzahl] = document.createElement("img");
21		this.bild[this.anzahl].id = "bild" + this.anzahl;
22		this.bild[this.anzahl].src = s;
	.
	.
	.
	.
Ich habe den Array "bild[]" vorher als
Code:
bild(index).bild... 
bild(index).hoehe.
ansprechen wollen, aber das funktionierte nicht.
Wieder das alte Thema:
Am deutlichsten läßt es sich in PASCAL ausdrücken (meiner "Muttersprache"):
Code:
TYPE tTest = record
                            bild : tIrgendEinTyp;
                            hoehe: Integer;
                        end; (*record*)
VAR aTest = Array[0..10] of tTest;
Läßt sich soetwas nicht irgendwie in JavaScript implementieren?
Oder bin ich zu blöd?
Nachdenklich,
Ulrich
 
Du kannst es schon implementieren. Du müsstest nur eben selbst den Typ beim Einfügen prüfen, da JavaScript das nicht tut.
 
Danke Euch ersteinmal!
Ich werde bis Ende Januar noch mit Code-Review beschäftigt sein, und zu diesem Thema sicherlich noch mehr Fragen haben.
Eine fällt mir aber noch direkt ein:
Programmieren ist ja sicherlich häufig eine Frage des Geschmacks. Aber es gibt für viele Sprachen Namens- und sonstige Konventionen:
Kennt ihr zu diesen speziellen Fragen bei JavaScript vielleicht Quellen?
Ich würde mir gerne auch noch mehr Bücher zu JavaScript kaufen,
habe jedoch außer "JavaScript" von Flanagan noch kein Gescheites gefunden?!
LG,
Ulrich
 
Danke für den Literaturhinweis!
Habe mir jetzt auch noch vom gleichen Verlag "Pro JavaScript Techniques" von Resig zugelegt. Prima Bücher, auch wenn das Niveau sehr hoch ist!
Liebe Grüße,
Ulrich
 

Neue Beiträge

Zurück