Ich bin ein Neuling in Javascript. Und ich stand vor der folgenden Frage.Javascript ES5 Array-Funktionen. forEach Sekunde "This Value" Argument
Wie gesagt here, fast alle ES5 Array-Funktionen (forEach, Karte, Filter, alle, einige) können zusätzliche zweite Argument.
Wenn es angegeben wird, wird die Funktion aufgerufen, als ob es eine Methode dieses zweiten Arguments ist. Das heißt, das zweite übergebene Argument wird der Wert des dieses Schlüsselworts innerhalb der Funktion, die Sie übergeben.
array.forEach(function(currentValue, index, arr), thisValue)
array.map(function(currentValue, index, arr), thisValue)
Im Gegenteil:
array.reduce(callback, [initialValue])
array.reduceRight(callback, [initialValue])
Beachten Sie, dass weder verringern() noch reduceRight() akzeptiert ein optionales Argument, an dem der Wert gibt die Verkleinerungsfunktion aufgerufen werden soll . Siehe Function.bind() Methode, wenn Sie Ihre Reduktionsfunktion als Methode eines bestimmten Objekts aufgerufen haben müssen.
Was bedeutet es: "als eine Methode eines bestimmten Objekts aufgerufen werden"? Könnte jemand ein Beispiel angeben, wie sich dies auf meinen Code auswirken könnte?
Vielen Dank im Voraus.
Ein JavaScript wichtiges Merkmal wie *** funktionelle *** Sprache ist, dass Sie Funktion als params passieren kann (aka, 'Callbacks ') zu Wrapping-Funktion (aka,' Funktion höherer Ordnung'), und das 'Kontext' (aka,' this' Schlüsselwort) dieser Rückrufe ist schwer zu überdenken, wie Sie nie wann und wo wissen (obwohl viele Zeit im Besitz des globalen Objekts wie "Fenster" im Browser) werden sie aufgerufen, wenn Sie also verwenden 'this 'in diesen Callbacks ist' Function.bind' eine gute Möglichkeit, den Kontext des Callbacks zu "pinnen", während' arrow function' automatisch an den umgebenden Kontext bindet. – Xlee