Hi,
ich möchte ein Array mit Images "on the fly" erstellen.
Kann mir jemand sagen, wie ich dafür folgenden Code abgekürzt erstellen kann?
var a = new Array();
var img = new Image();
img.src = "bild.jpg";
a.push(img);
>
> usw.
> Irgendwie so dachte ich, aber wie muss die Syntax richtig sein?:
>
> `[{new Image(); src = "bilder/cleofide/bild1.jpg"}, ...]`{:.language-javascript}
new Image() liefert dir ein neues Image-Objekt - wenn du diesen Ausdruck noch mal klammerst, kannst du auch auf Eigenschaften dieses Image-Objektes zugreifen:
~~~javascript
(new Image()).src = "xyz"; // bzw. auch so -
(new Image).src = "xyz"; // die runden Klammern hinter dem Konstruktur-Aufruf
// können entfallen, wenn keine Parameter übergeben werden
Allerdings liefert dir dieser Zuweisungsausdruck jetzt den Inhalt der Zuweisung zurück, also hier das "xyz" - und damit hast du die Möglichkeit verspielt, dein Image-Objekt ins Array einzufügen.
Wenn du unbedingt meinst, an obigem Code etwas abkürzen zu müssen - dann schreibe eine Funktion, die den Inhalt des src-Attributes als Parameter übergeben bekommt; die ein neues Image erzeugt, den src-Wert zuweist, und dann das Image zurückgibt.
MfG ChrisB
--
Light travels faster than sound - that's why most people appear bright until you hear them speak.
Light travels faster than sound - that's why most people appear bright until you hear them speak.