Sélectionnez dynamiquement une méthode d'un objet en JavaScript

Apprenez à accéder dynamiquement à une méthode d'un objet en JavaScript

Parfois, vous avez un objet et vous devez appeler une méthode, ou une méthode différente, selon certaines conditions.

Par exemple, vous avez uncarobjet et vous voulez soitdrive()lui ou àpark()il, en fonction de ladriver.sleepyévaluer.

Si le conducteur a un niveau de sommeil supérieur à 6, nous devons garer la voiture avant qu'elle ne s'endorme pendant la conduite.

Voici comment vous y parvenez avec unif/elseétat:

if (driver.sleepy > 6) {
  car.park()
} else {
  car.drive()
}

Réécrivons ceci pour être plus dynamique.

Nous pouvons utiliser l'opérateur ternaire pour choisir dynamiquement le nom de la méthode, l'obtenir comme valeur de chaîne.

En utilisant des crochets, nous pouvons le sélectionner parmi les méthodes disponibles de l'objet:

car[driver.sleepy > 6 ? 'park' : 'drive']

Avec l'instruction ci-dessus, nous obtenons la référence de la méthode. On peut l'invoquer directement en ajoutant les parenthèses:

car[driver.sleepy > 6 ? 'park' : 'drive']()

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


Plus de tutoriels js: