2016-10-06 1 views
0
Understood

Im folgenden JavaScript-Code, (Unter Bibliothek):Unders Code Nicht

function getStudentInfo(elem, indx, list){ 
    //does stuff with them 
} 
window.addEventListener("load", function(e){ 
    _.each(students,getStudentInfo); 
} 

Studenten ist ein Array wie diese

var students=[ 
{ 
"first":"Woody", 
"stuff":"12", 
} 
//a lotta objects here 
] 

meine Frage in Aufruf des Unterstreichungs _.each ist zurückblickt Funktion , (getStudentInfo) Woher kennt getStudentInfo die Parameter? Was hat die Parameter dazu weitergegeben?

+1

Haben Sie die Dokumentation gelesen? http://underscorejs.org/#each –

+2

* "Was hat die Parameter an es übergeben?" * '_.each' tut. Sie übergeben eine Funktion an _ _.each, _ _.each ruft diese Funktion auf. Welche Parameter an die Funktion übergeben werden, wird in der Dokumentation erläutert. –

+0

Bedenke, dass die Übergabe von 'getStudentInfo' als Parameter an' _.each' (fast) identisch ist mit dem Befehl 'function (elem, indx, list) {return getStudentInfo (elem, indx, list); } '. –

Antwort

0

Die _.each (..) Callback-Funktion 3 Parameter

  1. Element nimmt - > des Arrays/Liste
  2. Index -> der Element in Array/list
  3. Liste -> Die Liste iteself

Sie rufen _.each() mit der ersten Liste als Parameter übergeben und Ruhe es dafür sorgt, indem dieselbe in die Rückruffunktionen Passieren eines durch eins

_.each ("Die Liste/Array", Callback-Funktion)

-2

Hier machen Sie Operationen auf dem Array und für die populärste javascript Bibliothek ist Lodash (was als '_' bekannt ist).

Callback-Funktion gibt immer einen Wert zurück, der ein einzelnes Element des Arrays ist. Es funktioniert wie für jede Schleife von Javascript.

siehe https://lodash.com/docs/4.16.3#forEach

für seine Dokumentation

+0

mit lodash können wir die gleiche Funktionalität erreichen. –

0

Wenn Sie die _.each Funktion Quellcode zu sehen, wird es wie unten Schnipsel sein. wo

obj: Array

iteratee: Callback-Funktion

if (isArrayLike(obj)) { // checks for an array and it it is.. 
    for (i = 0, length = obj.length; i < length; i++) { // iterate over the array elements 
    iteratee(obj[i], i, obj); // and pass each element to callback function 
    } 
}