Ich erstelle ein Problem zu verstehen, wie Funktion Argumente Objekt analysieren.Javascript Argumente Objekt Parameter Analyse
Der Code, den ich Analyse:
function foo(something) {
console.log(something); // outputs 3
return this.a + something;
}
function bind(fn, obj) {
return function() {
return fn.apply(obj, arguments);
};
}
var obj = {
a: 2
};
var bar = bind(foo, obj);
var b = bar(3, 5, 6);
Die Funktion foo Konsole protokolliert seine Argumente mit dem Namen „etwas“, das Objekt sein sollten Argumente. Warum bekomme ich nur den ersten Param und andere Params werden ignoriert? Ich dachte, ich sollte das ganze Argument Objekt bekommen.
Ich übergebe ein Array (nebenbei, Art der Argumente Parameter ist Objekt) [3, 5, 6] und die erste erhält sein erstes Element. Warum? Für mich sieht es jetzt aus, dass ich eine Funktion habe, die ihre Argumente falsch ausgibt. Zum Beispiel: 'Funktionstest (arg) { console.log (arg); } Test ([1,2,3]) // Ausgänge [1,2,3] ' aber ich bekomme etwas wie folgt: ' test ([1,2,3]) // [1] ' – tawreon
Image, dass .apply() ein gegebenes Array einem Funktionsargument zuordnet. Es läuft sozusagen über alle Elemente des gegebenen Arrays und bildet jede Übereinstimmung ab. Sie haben nur eine Übereinstimmung für Argumente [0], weil foo nur einen Parameter hat – scipper