J'examine un code du livre de Kyle Simpson "Vous ne connaissez pas JS: ce & Object Prototypes" et collé sur un exemple de code, qui est écrit ci-dessous.JavaScript javascript paramètres avec la méthode .bind()
Quelqu'un peut-il expliquer en clair comment bar variable après l'exécution var bar = foo.bind(null, 2);
morceau de code enregistre "un" paramètre en tant que 2 et où il conserve ce paramètre enregistré, et pourquoi les paramètres ne sont pas remplacés lorsque le code bar(3);
s'exécute?
function foo(a, b) {
console.log(a, b);
console.log("a:" + a + ", b:" + b);
}
foo.apply(null, [1, 10]);
var bar = foo.bind(null, 2);
bar(3);
Il est dans la définition de 'bind': * La méthode' bind() 'crée une nouvelle fonction qui, lorsqu'elle est appelée , a son mot-clé 'this' mis à la valeur fournie, avec une séquence donnée de ** arguments précédant tout fourni lors de l'appel de la nouvelle fonction. *** C'est simplement ce qu'il fait. Comment cela fonctionne-t-il en interne? – deceze
Lors du débogage, j'ai découvert que je pouvais accéder aux paramètres de la barre via des prototypes en exécutant le code 'bar.call ('BoundArgs')'. – tawreon
Pouvez-vous démontrer exactement quel est le résultat et comment vous pouvez "accéder" aux paramètres de cette façon? – deceze