Maison >interface Web >js tutoriel >`call()` vs `apply()` : quand utiliser quelle méthode d'invocation de fonction ?
Invocation de fonction avec appel et application
Lors de l'appel de fonctions, les programmeurs rencontrent souvent les options d'utilisation de Function.prototype.apply() ou Function .prototype.call(). Cet article explore les distinctions et les cas d'utilisation des deux méthodes.
apply() vs. call()
La différence fondamentale réside dans la façon dont elles gèrent les arguments de fonction :
Syntaxe
Method | Syntax |
---|---|
apply() | function.apply(thisArg, [arg1, arg2, ...]) |
call() | function.call(thisArg, arg1, arg2, ...) |
Mnémoniques
Pour se souvenir du différence :
Utilisez Cas
Performance Considérations
Les deux méthodes ont des caractéristiques de performance similaires. Dans ES6 et versions ultérieures, l'opérateur spread (...) peut être utilisé avec call(), offrant une alternative plus concise à apply().
Exemple
Considérons la fonction suivante :
function greet(name, occupation) { console.log(`Hello, my name is ${name} and I'm a ${occupation}.`); }
Invoquer la fonction à l'aide de apply() et call() :
greet.apply(undefined, ["John", "engineer"]); greet.call(undefined, "Mary", "doctor");
Cela permettra sortie :
Hello, my name is John and I'm a engineer. Hello, my name is Mary and I'm a doctor.
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!