"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Utilisation de « call », « apply » et « bind » dans un système de facturation de restaurant.

Utilisation de « call », « apply » et « bind » dans un système de facturation de restaurant.

Publié le 2024-11-02
Parcourir:838

Using `call`, `apply`, and `bind` in a Restaurant Billing System.

Aperçu du scénario

Dans un restaurant, les clients peuvent commander plusieurs plats et nous souhaitons calculer leur facture totale en fonction des prix des plats commandés, des éventuelles taxes applicables et des réductions. Nous allons créer une fonction pour calculer la facture totale et utiliser l'appel, l'application et la liaison pour gérer différents clients et leurs commandes.

Exemple de code

// Function to calculate the total bill
function calculateTotalBill(taxRate, discount) {
    const taxAmount = this.orderTotal * (taxRate / 100); // Calculate tax based on the total order amount
    const totalBill = this.orderTotal   taxAmount - discount; // Calculate the final bill
    return totalBill;
}

// Customer objects
const customer1 = {
    name: "Sarah",
    orderTotal: 120 // Total order amount for Sarah
};

const customer2 = {
    name: "Mike",
    orderTotal: 200 // Total order amount for Mike
};

// 1. Using `call` to calculate the total bill for Sarah
const totalBillSarah = calculateTotalBill.call(customer1, 10, 15); // 10% tax and $15 discount
console.log(`${customer1.name}'s Total Bill: $${totalBillSarah}`); // Output: Sarah's Total Bill: $117

// 2. Using `apply` to calculate the total bill for Mike
const taxRateMike = 8; // 8% tax
const discountMike = 20; // $20 discount
const totalBillMike = calculateTotalBill.apply(customer2, [taxRateMike, discountMike]); // Using apply with an array
console.log(`${customer2.name}'s Total Bill: $${totalBillMike}`); // Output: Mike's Total Bill: $176

// 3. Using `bind` to create a function for Sarah's future calculations
const calculateSarahBill = calculateTotalBill.bind(customer1); // Binding Sarah's context
const totalBillSarahAfterDiscount = calculateSarahBill(5, 10); // New tax rate and discount
console.log(`${customer1.name}'s Total Bill after New Discount: $${totalBillSarahAfterDiscount}`); // Output: Sarah's Total Bill after New Discount: $115

Explication

  1. Définition de la fonction :

    • Nous définissons une fonction calculateTotalBill qui prend taxRate et discount comme paramètres. Cette fonction calcule la facture totale en ajoutant les taxes au total de la commande et en soustrayant les remises éventuelles.
  2. Objets client :

    • Nous créons deux objets client, customer1 (Sarah) et customer2 (Mike), chacun avec leurs noms respectifs et le montant total des commandes.
  3. Utiliser l'appel :

    • Pour Sarah, nous calculons sa facture totale en utilisant la méthode d'appel. Cela nous permet de spécifier customer1 comme contexte et de transmettre le taux de taxe et la remise comme arguments distincts. Le résultat affiche la facture totale de Sarah après application de la taxe et de la remise.
  4. Utilisation d'appliquer :

    • Pour Mike, nous utilisons la méthode d'application pour calculer sa facture totale. Cette méthode nous permet de transmettre les paramètres sous forme de tableau, ce qui la rend pratique pour gérer plusieurs arguments. La facture totale de Mike est calculée de la même manière, mais avec des valeurs de taxes et de remise différentes.
  5. Utilisation de liaison :

    • Nous créons une fonction liée pour Sarah en utilisant bind, qui verrouille le contexte sur customer1. Cela signifie que nous pourrons appeler cette nouvelle fonction ultérieurement sans avoir besoin de la spécifier à nouveau. Nous le démontrons en calculant à nouveau la facture totale de Sarah avec différents paramètres, ce qui permet des calculs futurs flexibles.

Sortir

  • Les journaux de la console affichent le total des factures de Sarah et Mike en fonction de leurs commandes et remises respectives.
  • Cet exemple montre efficacement comment les fonctions d'appel, d'application et de liaison peuvent être utilisées pour gérer les contextes de fonction au sein d'un système de facturation de restaurant.

Conclusion

Ce scénario montre comment appeler, appliquer et lier peuvent être utilisés dans un cadre pratique, tel que le calcul des factures de restaurant, aidant à comprendre comment ces méthodes facilitent la gestion de cela en JavaScript.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/dharamgfx/using-call-apply-and-bind-in-a-restaurant-billing-system-249j?1 En cas d'infraction, veuillez contacter study_golang@163. .com pour le supprimer
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3