Pfeilfunktion

Zeppi

Aktives Mitglied
Moin,
ich bin gerade dabei Javascript zu lernen. In einer Aufgabe soll ich eine Pfeilfunktion verwenden.
Diese verstehe ich noch nicht ganz, vielleicht kann mir die jemand kurz erklären.
//Die Namensgebungen stammen nicht von mir

Javascript:
var type = ["Hose", "Hoodie", "Bommelschal", "Muff "]
var color = ["crimson", "deeppink", "gold", "purple", "olive", "darkcyan"]
var textcolor = ["black", "white", "yellow", "skyblue"]


var garments = []
i=0

type.forEach( t => color.forEach(c => textcolor.forEach( tx => garments[i++]  = {type: t, color: c, textcolor: tx})))     //hier wird das Array Garments mit allen Varianten (96) gefüllt



function ausgabe(garment)
{
    console.log("type" + ":" + garment["type"])
    console.log("color" + ":" + garment["color"])
    console.log("textcolor" + ":" + garment["textcolor"])
}

garments.forEach(g => ausgabe(g))  /*hier habe ich meine Frage: Ich verstehe noch nicht ganz, was genau bei
                                     einer Pfeilfunktion passiert. ForEach Schleife ist ja eine Schleife, in der jedes Element, in dem Fall das Array durchlaufen wird.
                                     Heißt dass dann, dass jedes Element des Arrays garments auf die function ausgabe übergeben wird? ist g dann quasi ein Parameter der an garments[index]
                                     übergeben wird? Also steht dann da z.B. garments.forEach(garmetns[i]=>ausgabe(garments[i])? oder interpretiere ich den Parameter falsch?
                                     Vielleicht hat jemand ja einen Tipp*/
 

Oneixee5

Top Contributor
Der Ausdruck einer Pfeilfunktion hat eine kürzere Syntax als ein Funktionsausdruck und hat kein eigenes this, arguments, super, oder new.target. Solche Funktionsausdrücke sind am besten für Funktionen, die nicht als Methode genutzt werden, geeignet und können nicht als Konstruktoren verwendet werden.
 
K

kneitzel

Gast
Eine Pfeilfunktion ist einfach eine vereinfachte Schreibweise einer Funktion.

Das forEach will ein callback haben, also eine Funktion, die es aufrufen kann. Daher ist dieser Ausdruck auch so möglich:
Javascript:
garments.forEach(function(g) {
    ausgabe(g);
});
 

Neue Themen


Oben