Avatar ·

Quelle est la différence entre call et apply en JavaScript ? Quand utiliser quoi ?

Bonjour à tous ! J'ai commencé à étudier JavaScript et je suis tombé sur les méthodes call et apply. Je comprends que toutes deux permettent d'appeler une fonction avec un contexte spécifié (la valeur de this), mais je n'arrive pas à saisir quelle est leur différence fondamentale. Supposons que j'ai un objet simple et une fonction : ```javascript const person = { firstName: 'Иван', lastName: 'Петров' }; function greet(greeting, punctuation) { console.log(`${greeting}, ${this.firstName} ${this.lastName}${punctuation}`); } ``` Je peux appeler cette fonction via call : ```javascript greet.call(person, 'Привет', '!'); // Привет, Иван Петров! ``` Et via apply : ```javascript greet.apply(person, ['Привет', '!']); // Привет, Иван Петров! ``` Le résultat est identique. J'ai lu que la différence réside dans la manière dont les arguments sont passés : call — séparés par des virgules, apply — sous forme de tableau. Mais n'est-ce que du sucre syntaxique ? Ou existe-t-il des scénarios pratiques où apply est indispensable ? Par exemple, j'ai entendu parler de "faking" de méthodes de tableaux ou de travail avec...