OO und JavaScript: Durchlaufen aller Objekte

Diskutiere mit über: OO und JavaScript: Durchlaufen aller Objekte im Web-Programmierung Forum

  1. mac-o-rama

    mac-o-rama Thread Starter MacUser Mitglied

    Beiträge:
    48
    Zustimmungen:
    0
    Registriert seit:
    29.01.2006
    Hallo zusammen,

    ich stehe gerade irgendwie auf der Leitung und brauche nen Denkanstoß.

    Ich habe folgenden JavaScript-Code:
    Code:
    // Objektzähler
    var pizzaCounter = 0;
    
    function Pizza(name, size) {
    	this.name = name;
    	this.size = size;
    	this.qty = 0;
    	
    	// funktionale Methode(n)
    	this.increaseQty = increasePizzaQty;
    
    	pizzaCounter += 1;
    }
    
    function increasePizzaQty(qty) {
    	if (!qty)
    		qty = 1;
    		
    	this.qty += qty;
    }
    Neben dem oben aufgeführten Code habe ich folgende Funktion:
    Code:
    function getAllPizzas() {
    	for (var i = 0; i < pizzaCounter; i++) {
    		// Hier fehlt mir die Einsicht <-------------
    	}
    }
    Diese Funktion soll mir nun alle Pizza-Objekten liefern. Aber ich habe keine Idee, wie und wo ich ansetzen soll. Kann mir von Euch vielleicht einer weiterhelfen? Gerne auch Suchworte für google. Die sind mir nämlich schon ausgegangen. :)
     
  2. mac-o-rama

    mac-o-rama Thread Starter MacUser Mitglied

    Beiträge:
    48
    Zustimmungen:
    0
    Registriert seit:
    29.01.2006
    So, dann will ich mir mal selbst (zumindest eine vorläufige) Antwort geben. ;)

    Ich hab nun anstelle des Objekt-Zählers ein Array, in das ich bei jedem Konstruktor-Aufruf die Instanz des gerade erzeugten Objekts ablege.

    Code:
    // Objekte
    var objects = Array();
    
    function Pizza (name, size) {
    	this.name = name;
    	this.size = size;
    	this.qty = 0;
    	
    	// funktionale Methode(n)
    	this.increaseQty = increasePizzaQty;
    
    	objects[objects.length] = this;
    }
    
    function increasePizzaQty(qty) {
    	if (!qty)
    		qty = 1;
    		
    	this.qty += qty;
    }
    Nun kann ich mir bspw. mit nachfolgender Funktion alle name-Member aller erzeugten Objekte ausgeben:
    Code:
    function getAllPizzas() {
    	for (var i = 0; i < objects.length; i++) {
    		alert(objects[i].name);
    	}
    }
    Nun bleiben nur noch diese Fragen: Ist das so gut gelöst? Könnten irgendwann Probleme auftreten? Ist der Ansatz vielleicht kompletter Humbug und ich sollte mir was anderes einfallen lassen?
     
  3. maxpa

    maxpa MacUser Mitglied

    Beiträge:
    144
    Zustimmungen:
    0
    Registriert seit:
    06.01.2007
    Ich bin jetzt nicht so fit in JavaScript aber muesstest du nicht irgendwo den Array verlaengern? So schreibt er ja immer an die selbe Stelle im Array.
     
  4. mac-o-rama

    mac-o-rama Thread Starter MacUser Mitglied

    Beiträge:
    48
    Zustimmungen:
    0
    Registriert seit:
    29.01.2006
    Hi maxpa,

    nein, das ist, zumindest aus meiner Sicht, kein Problem. objects.length ist ja im ersten Durchlauf 0, also wird die erste Instanz in objects[0] abgelegt. Danach ist objects.length ja 1 und die nächste Instanz wird in objects[1] abgelegt, usw. usw. Somit wird jede Instanz an einer anderen Stelle abgelegt.

    Zumindest funktioniert es bisher mit dem Code, den ich als letztes gepostet habe. Aber vielleicht ist da ja ein Denkfehler drin und es kommt irgendwann dazu, dass eine Instanz überschrieben wird?!
     
Die Seite wird geladen...
Ähnliche Themen - JavaScript Durchlaufen aller Forum Datum
Javascript: key listener unter iOS Web-Programmierung 27.05.2016
JavaScript coding game - Tester gesucht Web-Programmierung 21.10.2013
Interaktivsein mit Javascript (Eingaben???) Web-Programmierung 04.04.2013
fieldset klonen mit JavaScript / jQuery Web-Programmierung 21.02.2013
Javascript Text verschwinden lassen (display:none) Web-Programmierung 31.12.2012

Diese Seite empfehlen

Benutzerdefinierte Suche