En JavaScript, el enlace de funciones se realiza mediante el método Bind() . Con este método, podemos vincular un objeto a una función común, de modo que la función dé un resultado diferente cuando sea necesario. de lo contrario, da el mismo resultado o da un error mientras se ejecuta el código.
Usamos el método Bind() para llamar a una función con este valor, esta palabra clave se refiere al mismo objeto que está actualmente seleccionado. En otras palabras, el método bind() nos permite establecer fácilmente qué objeto se vinculará con esta palabra clave cuando se invoque una función o método.
La necesidad de bind generalmente ocurre cuando usamos thispalabra clave en un método y llamamos a ese método desde un objeto receptor, a veces esto no está vinculado al objeto al que esperamos estar vinculado. Esto resulta en errores en nuestro programa.
Ahora, un programa simple para imprimir el nombre que llama esta palabra clave cuando se invoca la función printFunc() .
<script> var geeks = { name : "ABC", printFunc: function(){ document.write(this.name);} } geeks.printFunc(); </script>
Producción:
ABC
Aquí no hay problema para acceder al nombre «ABC» , esta palabra clave vincula la variable de nombre a la función. Se conoce como enlace predeterminado. esta palabra clave se refiere al objeto geeks .
Ahora vea el siguiente código,
<script> var geeks = { name : "ABC", printFunc: function(){ document.write(this.name);} } var printFunc2= geeks.printFunc; printFunc2(); </script>
Producción:
//no output is produced by this code//
Aquí creamos una nueva función variable printFunc2 que se refiere a la función printFunc() de los geeks de objetos . Aquí se pierde el enlace de esto , por lo que no se produce ninguna salida.
Para asegurarnos de que no se pierda ningún enlace de esto , estamos usando el método Bind() .
Al usar el método bind() podemos establecer el contexto de esto en un objeto en particular. Entonces podemos usar otras variables también para llamar a la función vinculada.
Utilice el método bind() en el ejemplo anterior:
<script> var geeks = { name : "ABC", printFunc: function(){ document.write(this.name);} } var printFunc2= geeks.printFunc.bind(geeks); //using bind() // bind() takes the object "geeks" as parameter// printFunc2(); </script>
Producción:
ABC
El método bind() crea una nueva función donde esta palabra clave se refiere al parámetro entre paréntesis en el caso anterior, geeks . De esta forma, el método bind() permite llamar a una función con un valor especificado .
Ejemplo 4:
En este ejemplo hay 3 objetos, y cada vez llamamos a cada objeto usando el método bind() .
<script> //object geeks1 var geeks1 = { name : "ABC", article: "C++" } //object geeks2 var geeks2 = { name : "CDE", article: "JAVA" } //object geeks3 var geeks3 = { name : "IJK", article: "C#" } function printVal(){ document.write(this.name+" contributes about "+this.article+"<br>"); } var printFunc2= printVal.bind(geeks1); //using bind() // bind() takes the object "geeks1" as parameter// printFunc2(); var printFunc3= printVal.bind(geeks2); printFunc3(); var printFunc4= printVal.bind(geeks3); printFunc4(); //uniquely defines each objects </script>
Producción:
ABC contributes about C++ CDE contributes about JAVA IJK contributes about C#
Publicación traducida automáticamente
Artículo escrito por SoumikMondal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA