eXeed: Array, Object

Hallo an die Scripter,

ich hab da mal ne Frage zu folgenden Codebeispiel:

  
<html><head><title>Test</title>  

~~~~~~javascript
  
<script type="text/javascript">  
function Farbe (R, G, B) {  
  this.R = R;  
  this.G = G;  
  this.B = B;  
  this.hex = "#";  
}  
  
function HintergrundWechseln () {  
  var Hintergrund = new Farbe("E0", "FF", "E0");  
  document.bgColor = Hintergrund.hex + Hintergrund.R + Hintergrund.G + Hintergrund.B;  
}  
</script>
~~~~~~html
  
</head><body bgcolor="#FFFFFF">  
<h1>Das eigene Farb-Objekt mit JavaScript</h1>  
<a href="javascript:HintergrundWechseln()">Hintergrundfarbe wechseln</a>  
</body>  
</html>
~~~frage: Angenommen die Variable Hintergrund wär ein Array und in einem Feld des Arrays wird das Object new Farbe("E0", "FF", "E0"); erzeugt, also z.B. `Hintergrund[0] = new Farbe("E0", "FF", "E0");`{:.language-javascript} `Hintergrund[0] = new Farbe("FF", "E0", "FF");`{:.language-javascript} und so weiter...  
Wie kann ich mir nun die einzelnen Felder ausgeben lassen?  
alert(Hintergrund[1].R) funktioniert irgendwie nicht.  
  
Gruß Andreas
  1. Moin eXeed,

    alert(Hintergrund[1].R) funktioniert irgendwie nicht.

    Doch, durchaus. Du musst nur beim initialisieren auch aufpassen, dass du zwei verschiedene Array-Indizes benutzt ;-) Dein Code aus dem Posting:

    Hintergrund[0] = new Farbe("E0", "FF", "E0");  
    Hintergrund[0] = new Farbe("FF", "E0", "FF");
    

    Besser also:

    Hintergrund[0] = new Farbe("E0", "FF", "E0");  
    Hintergrund[1] = new Farbe("FF", "E0", "FF");
    

    Dann klappts auch mit dem alert(Hintergrund[1].R);

    LG,
     CK

    1. schon mal vielen Dank für deine Korrektur :-)

      Mein Problem ist die Zeile 147 im Quellcode folgender Seite:
      http://www.canvasdemos.com/userdemos/toxicgonzo/3dobjviewer.html

      angenommen ich füge in Zeile 151 ein alert(verticesArray[1].x); ein, dann müsste doch beim 2ten Durchlauf der Schleife die Koordinate der x-Achse ausgegeben werden, oder?

      Hab auch schon alert(this.verticesArray[1].x); probiert, das geht genau so wenig.

      Einfach nur alert(verticesArray[1]); liefert beim 2ten Durchlauf Object in der alertbox.

      Verstehe das nicht und bin ziemlich verzweifelt :-(

      LG Andreas

      1. Hi,

        Einfach nur alert(verticesArray[1]); liefert beim 2ten Durchlauf Object in der alertbox.

        Und was liefert es beim ersten ...?

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?