Lier une méthode d'objet

JavaScriptJavaScriptBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons explorer le concept de liaison de méthodes d'objet en JavaScript. Nous allons créer une fonction qui lie une méthode donnée d'un objet au contexte de cet objet, nous permettant d'appeler la méthode avec tous les arguments supplémentaires que nous fournissons. À la fin de ce laboratoire, vous aurez une compréhension plus approfondie de la manière de manipuler les objets et leurs méthodes en JavaScript.

Fonction pour lier une méthode d'objet

Pour créer une fonction qui lie une méthode d'objet à son contexte et optionnellement ajoute des paramètres supplémentaires au début, suivez ces étapes :

  1. Ouvrez le Terminal/SSH et tapez node pour commencer à pratiquer la programmation.
  2. Définissez une fonction qui prend trois paramètres : le contexte de l'objet, la clé de la méthode et tous les arguments supplémentaires à ajouter au début.
  3. La fonction devrait renvoyer une nouvelle fonction qui utilise Function.prototype.apply() pour lier la méthode au contexte de l'objet.
  4. Utilisez l'opérateur de propagation (...) pour ajouter tous les paramètres supplémentaires fournis aux arguments.
  5. Voici une implémentation exemple :
const bindKey =
  (context, fn, ...boundArgs) =>
  (...args) =>
    context[fn].apply(context, [...boundArgs, ...args]);
  1. Pour tester la fonction, créez un objet avec une méthode et liez-la à l'aide de bindKey(). Ensuite, appelez la méthode liée avec quelques arguments.
const freddy = {
  user: "fred",
  greet: function (greeting, punctuation) {
    return greeting + " " + this.user + punctuation;
  }
};
const freddyBound = bindKey(freddy, "greet");
console.log(freddyBound("hi", "!")); // 'hi fred!'

Résumé

Félicitations ! Vous avez terminé le laboratoire sur la liaison de méthodes d'objet. Vous pouvez pratiquer d'autres laboratoires dans LabEx pour améliorer vos compétences.