# Pfeilfunktion



## Zeppi (17. Apr 2021)

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


```
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 (17. Apr 2021)

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.








						Arrow function expressions - JavaScript | MDN
					

An arrow function expression is a compact alternative to a traditional function expression, with some semantic differences and deliberate limitations in usage:




					developer.mozilla.org
				











						Array.prototype.forEach() - JavaScript | MDN
					

The forEach() method executes a provided function once   for each array element.




					developer.mozilla.org


----------



## kneitzel (17. Apr 2021)

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:

```
garments.forEach(function(g) {
    ausgabe(g);
});
```


----------

