Ich werde versuchen, es aus zu erklären, was ich verstehe. Die Syntax für die Verwendung von "apply" lautet:
Hier gibt thisArg den Kontext an, der auf die Funktion angewendet wird. (ZB, das). [argsArray] ist das Array von Argumenten für die Funktion.
Wenn Sie dies tun:
addToThis.apply(obj,arr)
Sie vorbei im Grunde arr=[1,2,3]
als Argumente an Ihre addToThis Funktion. Somit wird a
1, b
wird 2, wenn Sie ein c
in Ihrer Funktionsdefinition haben, die so auf 3..and werden würde, bis sie die Länge Ihres Array erreicht.
Siehe this Geige, hier console.log(c)
druckt das dritte Element in Ihrem Array. Aber, wenn Sie diesen Code geschrieben:
var obj = {num:2};
var addToThis = function(a,b,c,d){
console.log(a); //prints first element in array
console.log(b); //prints second element
console.log(c); //prints third element
console.log(d); //prints undefined because there is no forth element
};
var arr = [1,2,3];
addToThis.apply(obj,arr);
Hoffnung, das hilft.
'apply' sendet den Inhalt des Arrays als einzelne Argumente - so' a' wird auf '1' gesetzt werden, und 'b' auf '2'. Was erwartest du zu passieren? – Shadow