Appels de méthode de chaînage en JavaScript

En JavaScript, nous pouvons parfois enchaîner les appels de méthode, comme ceci:

car.start().drive()

C'est assez pratique de le faire.

Au lieu d'écrire

car.start()
car.drive()

nous pouvons simplifier dans un one-liner.

Cela est possible si chaque méthode renvoie l'objet lui-même. En d'autres termes, l'implémentation doit être quelque chose comme ceci:

const car = {
  start: function() {
    console.log('start')
    return this
  },
  drive: function() {
    console.log('drive')
    return this
  }
}

Il est important de noter que vous ne pouvez pas utiliser les fonctions fléchées, carthisdans une fonction de flèche utilisée comme méthode d'objet n'est pas liée à l'instance d'objet.

J'aime utiliser les fonctions fléchées tout le temps, et c'est l'un des cas où vous ne pouvez pas.

Les appels de méthode chaînés sont parfaits lorsque vous ne retournez pas un ensemble de valeurs de la méthode, sinon vous devez évidemment affecter un appel de méthode à une variable, et le chaînage n'est pas possible:

const result = car.start()
if (result) {
  car.drive()
}

Téléchargez mon gratuitManuel du débutant JavaScript


Plus de tutoriels js: