Maison >interface Web >js tutoriel >Appeler ou appliquer en JavaScript : en quoi ces méthodes d'invocation de fonction diffèrent-elles ?

Appeler ou appliquer en JavaScript : en quoi ces méthodes d'invocation de fonction diffèrent-elles ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-15 11:05:17726parcourir

Call vs. Apply in JavaScript: How Do These Function Invocation Methods Differ?

Méthodes d'appel de fonction : appeler ou appliquer

En JavaScript, les méthodes d'appel et d'application vous permettent d'invoquer des fonctions avec des contextes et des arguments personnalisés . Bien que les deux méthodes servent le même objectif, elles diffèrent dans la façon dont elles gèrent la transmission des arguments.

call vs. apply : gestion des arguments

La principale différence réside dans la façon dont les arguments sont fournis à la fonction :

  • appel : Chaque argument est passé individuellement.
  • appliquer : Les arguments sont passés sous forme de tableau.

Pour retenir cette distinction, le mnémonique "A pour tableau et C pour virgule" peut être utile.

Syntaxe :

  • appel :

    theFunction.call(valueForThis, arg1, arg2, ...)
  • postuler :

    theFunction.apply(valueForThis, arrayOfArgs)

Exemple :

function theFunction(name, profession) {
  console.log("My name is " + name + " and I am a " + profession + ".");
}

theFunction("John", "fireman");
theFunction.apply(undefined, ["Susan", "school teacher"]);
theFunction.call(undefined, "Claude", "mathematician");

Dans Dans cet exemple, la méthode call est utilisée avec des arguments séparés par des virgules, tandis que la méthode apply prend un tableau d'arguments.

Spread Operator :

Dans ES6 et versions ultérieures, l'opérateur spread peut être utilisé pour transmettre un tableau comme arguments au Méthode appel :

theFunction.call(undefined, ...["Matthew", "physicist"]);

Recommandations en matière de performances et d'utilisation :

Il n'y a pas de différences de performances significatives entre l'appel et l'application. Le choix de la méthode à utiliser dépend de la situation spécifique :

  • Si les arguments sont déjà dans un tableau, utiliser apply peut simplifier le code.
  • Si vous devez transmettre une valeur personnalisée pour le contexte this, call et apply peuvent être utilisés.
  • C'est Il est généralement considéré comme une bonne pratique d'utiliser call lorsque vous travaillez avec des fonctions en tant qu'objets, et apply lorsque vous traitez des tableaux d'arguments.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn