Quelle est la différence entre appliquer et appeler en JavaScript?


Réponse 1:

La seule différence entre apply et call est que call prendra les paramètres de fonction sous la forme de valeurs séparées par des virgules tandis qu'apply prendra les paramètres de fonction comme un tableau.

Voici un exemple d'appel:

var displayHobbies = fonction (hobby1, hobby2, hobby3) {
console.log ('Les hobbies de' + this.name + 'sont' + hobby1 + ',' + hobby2 + ',' + hobby3);
}

var personne = {
nom: «John»
};

displayHobbies.call (personne, «lecture», «écriture», «chant»);

Voici un exemple d'application:

var displayHobbies = fonction (hobby1, hobby2, hobby3) {
console.log ('Les hobbies de' + this.name + 'sont' + hobby1 + ',' + hobby2 + ',' + hobby3);
}

var personne = {
nom: «John»
};

displayHobbies.apply (personne, ['lire', 'écrire', 'chanter']);

Pour une explication détaillée de la différence entre appliquer et appeler en javascript, consultez cet article: Différence entre appliquer, appeler et lier la méthode en javascript


Réponse 2:

La seule différence entre les deux est la façon dont ils prennent les paramètres:

  • l'appel accepte une liste d'argumentsapplique un tableau d'arguments

Pour vous donner un exemple:

// Accepte la liste des arguments
spongebob.greet.call (spongebob, 'Croyez-le ou non', 'Je suis une bonne nouille!');

// Accepte un tableau d'arguments
patrick.greet.apply (patrick, ['La mayonnaise est-elle un instrument?', 'La mayonnaise n'est pas un instrument ']);

Si vous souhaitez en savoir plus, vous pouvez consulter cet article que j'ai écrit qui couvre à peu près le sujet.