2017-12-10 2 views
0

Bitte gehen Sie durch den folgenden Code. Ich kann nicht genau was calllback.call tut.Funktionsweise der Callback.Call-Funktion in JQuery

Auch ich bin nicht in der Lage zu wissen, was ist der Unterschied zwischen diesem und diesem [i] und wie wenn (callback.call (this, this [i))) zu wahr oder falsch ausgewertet wird.

Array.prototype.each = function(callback) { 
    var i = 0; 
    while (i < this.length) { 
    callback.call(this, this[i]); 
    i++; 
    } 
    return this; 
}; 

Array.prototype.map = function(callback) { 
var i = this.length; 
var found = [] 
while (i--) { 
    if(callback.call(this, this[i])) { 
    found.push(this[i]); 
    } 
} 
return found; 
}; 

Die Funktionen werden im Folgenden genannt:

Array.each(function(value){ 
... 
}) 

Array.map(function(value){ 
... 
}) 
+0

In beiden Fällen ist 'each' und' map' mit einer Funktion belegt. – CodingYoshi

+0

Würdest du die Funktion nicht wie '[1,2,3] .each (function() {/ * tue etwas * /})'? –

Antwort

0

ich nicht in der Lage bin zu genau, was calllback.call tut.

Function.prototype.call können Sie für this

callback.call(this, this[i]); 

ist die gleiche wie

callback(this[i]) 

der Ausnahme, dass in den Rückruf der Wert von this ist die Menge eine Funktion mit einem expliziten Wert berufen zu sein das gleiche wie im aktuellen Kontext.


ist auch nicht in der Lage zu wissen, was der Unterschied zwischen diesem und dies [i].

In diesem Zusammenhang ist this das aktuelle Array. So this bedeutet das gesamte Array, this[i] erhält das i-te Element des Arrays.


Die .each Funktion Sie schlingt durch eine Anordnung und eine Funktion für jeden von ihnen nennen. Dies ist vergleichbar mit Javascript eingebaut Array.prototype.forEach.

.map wird benannt, als wäre es ein Polyfill für Array.protoype.map, führt aber tatsächlich einen .filter-Vorgang aus. Seltsam.

+0

Kann ich wissen, ob (callback.call (this, this [i))) zu wahr oder falsch ausgewertet wird –

+0

Welche Funktion übergeben Sie als Rückruf? Es wird alles darauf ankommen, was diese Funktion zurückgibt. –

Verwandte Themen