"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Uso de "llamar", "aplicar" y "vincular" en un sistema de facturación de restaurante.

Uso de "llamar", "aplicar" y "vincular" en un sistema de facturación de restaurante.

Publicado el 2024-11-02
Navegar:214

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

Descripción general del escenario

En un restaurante, los clientes pueden pedir varios platos y queremos calcular su factura total en función de los precios de los platos pedidos, los impuestos aplicables y los descuentos. Crearemos una función para calcular la factura total y usaremos llamar, aplicar y vincular para manejar diferentes clientes y sus pedidos.

Ejemplo de código

// 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

Explicación

  1. Definición de función:

    • Definimos una función calcularTotalBill que toma taxRate y descuento como parámetros. Esta función calcula la factura total sumando impuestos al total del pedido y restando cualquier descuento.
  2. Objetos de cliente:

    • Creamos dos objetos de cliente, cliente1 (Sarah) y cliente2 (Mike), cada uno con sus respectivos nombres y montos totales del pedido.
  3. Usando llamada:

    • Para Sarah, calculamos su factura total utilizando el método de llamada. Esto nos permite especificar cliente1 como contexto y pasar la tasa impositiva y el descuento como argumentos separados. El resultado muestra la factura total de Sarah después de aplicar el impuesto y el descuento.
  4. Usando aplicar:

    • Para Mike, utilizamos el método de aplicación para calcular su factura total. Este método nos permite pasar los parámetros como una matriz, lo que lo hace conveniente para manejar múltiples argumentos. La factura total de Mike se calcula de manera similar pero con diferentes valores de impuestos y descuentos.
  5. Usando enlace:

    • Creamos una función vinculada para Sarah usando bind, que bloquea el contexto para el cliente1. Esto significa que luego podremos llamar a esta nueva función sin necesidad de especificarla nuevamente. Lo demostramos calculando nuevamente la factura total de Sarah con diferentes parámetros, lo que permite cálculos futuros flexibles.

Producción

  • Los registros de la consola muestran las facturas totales de Sarah y Mike según sus respectivos pedidos y descuentos.
  • Este ejemplo demuestra de manera efectiva cómo llamar, aplicar y vincular se pueden usar para administrar contextos de funciones dentro de un sistema de facturación de restaurante.

Conclusión

Este escenario destaca cómo llamar, aplicar y vincular se pueden utilizar en un entorno práctico, como el cálculo de facturas de restaurantes, lo que ayuda a comprender cómo estos métodos facilitan la gestión de esto en JavaScript.

Declaración de liberación Este artículo se reproduce en: https://dev.to/dharamgfx/using-call-apply-and-bind-in-a-restaurant-billing-system-249j?1 Si hay alguna infracción, comuníquese con Study_golang@163 .com para eliminarlo
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3