Ich versuche, ein wenig vertraut mit der JavaScript-Terminologie zu werden. Ich glaube, ich bin verwirrt mit den Begriffen iteratee, Rückruf und Funktion FabrikVerständnis der Begriffe iteratee, Callback, Funktion Fabrik in JavaScript
ich folgendes dummes Beispiel verwenden lassen:
//this function accept an array and then returns a new array that
//contains the elements of the first array altered by func
function mapForEach(arr, func) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
newArr.push(func(arr[i]));
}
return newArr;
}
//this function multiplies two numbers
var multiply = function (a, b) {
console.log(a * b);
};
//this is a silly function that passes a multiplier as the first
//argument of the multiply function
var multiplyBy = function(multiplier) {
return multiply.bind(this, multiplier);
};
var arr = [1, 2, 3];
mapForEach(arr, multiplyBy(3)); //[6, 10, 20]
Also, um mein Verständnis so weit:
- iteratee (aka Prädikat) ist ein Funktionsobjekt, das etwas Arbeit leistet. In diesem Beispiel
mapForEach
einfunc
Objekt akzeptieren einige Arbeit mit denarr
Elementen zu tun, sofunc
kann iteratee und damitmultiplyBy
ist ein iteratee aufgerufen werden. In einem allgemeinen Konzept vielleichtmultiply
kann auch eine iteratee als eine eigenständige Funktion, die eine grundlegende Arbeit ausführt, betrachtet werden. - Rückruf ist eine Funktion A, die Sie einer anderen Funktion B geben, die von der anderen Funktion aufgerufen werden soll (also die andere Funktion B --sort to speak - "ruft" die Funktion A) zurück. In diesem Beispiel, wenn
mapForEach
aufgerufen wird, wird in einer neuen Umgebung ausgeführt, in der es das Funktionsobjektfunc
zurück ruft. So kann das Objektfunc
auch als Rückruf bezeichnet werden. In demselben Zusammenhang kann jedochmapForEach
auch als eine Funktion betrachtet werden, die, wenn sie ausgeführt wird, die -Funktion zurückruft, d.h. ist ein Rückruf zu. - Funktion Factory rufen wir eine Funktion, die etwas Arbeit für uns und/oder einen Wert (d. H. Ein Array, Objekt, Funktionsobjekt, was auch immer ....). In unserem Beispiel ist
multiplyBy
ein Funktionsobjekt, das beim Aufruf ein anderes Funktionsobjekt (eine Kopie von) zurückgibt (multiply
), das den Parametermultiplier
in seinem Abschluss hat. Somit istmultiplyBy
eine Werksfunktion.
Bin ich alle diese richtig hinzubekommen, (oder bin ich verrückt :-P gehen)