Método JavaScript Function.prototype.bind()

Una función es un conjunto de sentencias que toman entradas, hacen algún cálculo específico y producen salidas. Hay varios escenarios en la programación en los que necesitamos preconfigurar esta palabra clave o argumentos de función y podemos hacerlo fácilmente en JavaScript con la ayuda del método bind() . El método bind() crea una nueva función basada en la función en la que se llama. Usando el método bind(), podemos preconfigurar esta palabra clave y los argumentos para la función usando la sintaxis que se muestra a continuación.

Sintaxis:

const newFunction = oldFunction.bind(thisArg, arg1, ag2, ..., argN)

Usando la sintaxis anterior, se crea una nueva función basada en la función anterior con esta palabra clave configurada en thisArg y los argumentos de la función están preconfigurados como arg1 , agr2 , etc. El ejemplo mencionado a continuación demuestra el uso del método bind() con la ayuda de un ejemplo.

Ejemplo:

Javascript

<script>
    const car = {
        brand: 'Lamborghini',
    };
 
    // As of now, 'this' keyword refers
    // to 'window' object.
    const printDetail = function (model, topSpeed) {
        console.log(`${this.brand} ${model} has a
        top speed of ${topSpeed} mph`);
    };
 
    // Calling the function without using bind which
    // means 'this' still refers to 'window' object
    // so accessing this.brand will give undefined
    printDetail('Diablo Coatl', 239);
 
    // Creating a new function based on printDetail
    // with 'this' keyword referring to car object
    // so accessing this.brand will give 'Lamborgini'
    const lamboPrintDetail = printDetail.bind(car);
    lamboPrintDetail('Diablo VTTT', 222);
 
    // Creating another function based on printDetail
    // with it's arguments pre-configured and 'this'
    // keyword referring to car object
    const reventonPrintDetail
        = printDetail.bind(car, 'Reventon', 221);
 
    // Since the arguments are preconfigured so we don't
    // need to pass any argument to call this function
    reventonPrintDetail();
</script>

Producción:

undefined Diablo Coatl has a top speed of 239 mph
Lamborghini Diablo VTTT has a top speed of 222 mph
Lamborghini Reventon has a top speed of 221 mph

Publicación traducida automáticamente

Artículo escrito por shivamsingh00141 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *