Middle+
Pourquoi le méthode apply pourrait-il être nécessaire dans la solution runOnce?
sobes.tech IA
Réponse de l'IA
La méthode apply en JavaScript permet d’appeler une fonction avec un contexte (this) spécifié et des arguments sous forme de tableau. Dans l’implémentation de runOnce, qui doit s’exécuter une seule fois, apply est utile pour transmettre les arguments originaux et le contexte d’appel à la fonction enveloppante.
Par exemple, si nous voulons que runOnce retourne une fonction qui, lors de son premier appel, invoque la fonction d’origine avec les mêmes arguments et contexte, et lors des appels suivants ne le fasse pas, alors apply permet de faire cela de manière universelle :
function runOnce(fn) {
let called = false;
let result;
return function(...args) {
if (!called) {
called = true;
result = fn.apply(this, args); // transmettre le contexte et les arguments
}
return result;
};
}
Ainsi, apply garantit le bon fonctionnement de la fonction avec n’importe quel nombre d’arguments et le contexte d’appel correct.