JavaScript Currying

Hendoul

Commander
Registriert
Apr. 2008
Beiträge
2.162
Hi :)

Kann mir jemand erklären woher 'obj' kommt in diese Video bei 7:03 ?

Der erste Aufruf ist für die Funktion mit 'element', und das gibt dann eine Funktion zurück die 'obj' erwartet als Parameter, richtig? So und wo wird jetzt das aktuelle obj übergeben? Das sehe ich nicht.
 
Er gibt eine Lambda Funktion (bzw. eigentlich Arrow Function in JS genannt) als Parameter an _.curry . (Minute 5:00 z.B., falls noch jemand keine Lust hat zu suchen).

element und obj sind einfach nur Parameternamen, nichts weiter. Die könnten auch x und y heißen. Achte auf die Klammerung und was die Syntax darstellt, dann kommen solchen Fragen nicht auf ;)
 
Mir ist klar, dass das x und y heissen könnte. Ich weiss auch was eine Arrow function ist.

Er curried eine Funktion die zwei Parameter erwartet. Ruft diese dann mit einem auf, nämlich 'lightning'. Soweit so gut. Aber wo findet der zweite Aufruf statt mit dem Dragon Array?
 
Du musst dafür auf die .filter-Funktion verstehen.
Diese erwartet eine Funktion, an diese sie dann ihr aktuell zu prüfendes Objekt übergibt
Du rufst zu erst die hasElement auf, diese gibt dir die Curry-Funktion zurück. Die Curry-Funktion bekommt nun dein Suchwort und wartet auf ein zweite Objekt. Das wird ihr übergeben, weil das Curry ja an die Filter-Funktion zurückgeliefert wird und es dieser dann das Objekt übergeben kann. Somit hat curry die beiden Objekte element und obj gefüllt und nun kann die eigentliche Operation ausgeführt werden, sprich der Vergleich. Und dieses Ergebnis wird dann dem Filter zurückgeliefert.

Ich hoffe, das ist irgenwie verständlich :D (und richtig :D)
 
  • Gefällt mir
Reaktionen: sparvar und Kanibal
Durch die filter()-Methode. Die überprüft alle enthalten Elemente mittels der per Parameter übergebenen Prädikatsfunktion.
 
  • Gefällt mir
Reaktionen: sparvar
Ich musste es auseinandernehmen um es zu begreifen:
https://jsfiddle.net/GarfieldKlon/hdvsfeqb/

Am besten sieht man es natürlich bei der Funktion 'd' , wo dann folgendes returned wird:
return function(obj) {

So, habe verstanden :D
Vielen Dank euch allen :daumen:
 
Hendoul schrieb:
So, habe verstanden :D
Tipp für die Zukunft: Youtube-Videos sind meist nicht die richtige Basis, wenn man sowas lernen will. Das Video hab ich mehr mehrfach angeschaut und fand es grottenschlecht. Das ist eher Unterhaltung anstatt Wissensvermittlung. Solche Fragen wie du stellst, werden da absichtlich nicht erötert, weil man damit ja was wirklich erklären müsste und es die "Lockerheit" und "Einfachheit" raus nimmt. Aber fachlich bringen sie eigentlich wenig rüber außer, dass jemand angeben will, mit einem bekannten Code, der überall im Netz zu finden ist.
Ich würde sogar soweit gehen, dass der Youtubler dir die Frage nicht mal aus dem Stegreif beantworten könnte, weil er das wie gesagt nur kopiert hat.
IMHO Clickbait von einem Scriptkiddie
 
  • Gefällt mir
Reaktionen: bog
@rg88 Nichts für Ungut, aber ich glaube, du solltest dir folgendes Video ansehen, bevor du Programmier-Tutorials auf YouTube zu vorschnell verurteilst:
 
  • Gefällt mir
Reaktionen: rg88 und BeBur
Mir sagen solche Videos aber mehr zu als trockene Bücher. Und wenn man eins nicht verstanden hat, dann sucht man sich ein besseres, anderes Beispiel. Bei einem Buch geht das nicht so einfach. Der Typ von FunFun Function arbeitet glaubs bei Spotify, würde ihn also nicht als Script-Kiddie bezeichnen? Ich finde es gut gibt es solche Leute, viel Geld wird er damit sowieso nicht verdienen.
 
  • Gefällt mir
Reaktionen: new Account()
Zurück
Oben