Tach!
function f1(x) { return y => x * y; }; const f3 = f1(3); const f5 = f1(5); alert(f3(11) + " " + f5(7));
ich schreibe das mal in "altmodisches" JavaScript um:
function f1 (x) { return function (y) { return x * y; }; } const f3 = f1(3); const f5 = f1(5); alert(f3(11) + " " + f5(7)); // 33 35
So kann man sehen, dass eine anonyme Funktion zurückgegeben wird.
Das konnte man vorher auch schon sehen. Das Problem sehe ich daran nur, wenn man wenig Übung mit der Fat-Arrow-Syntax hat. Man sollte sich auch hüten, beide Schreibweisen als Ersatz anzusehen. Sie sind nämlich dann nicht mehr austauschbar, wenn ein this
ins Spiel kommt. Die Fat-Arrow-Syntax kapselt das this vom Erstellungszeitpunkt, bei der herkömmlichen Schreibweise verweist this auf den aktuellen Aufruferkontext.
Der eigentliche Knackpunkt ist meines Erachtens jedoch die Benennung der Funktion(en). Der sollte aussagekräftiger als f1, f3 und f5, so dass man nicht erst analysieren muss, was die Funktion macht, sondern das idealerweise aus ihrem Namen heraus ablesen kann.
Damit wären wir dann bei den zwei Hauptproblemen des Programmierens:
- Cache Invalidation
- Naming Things
- Off-By-One Errors
dedlfix.