Qual è la differenza tra chiamata e bind?

Qual è la differenza tra chiamata e bind?
Durante l'aggiunta di varie funzionalità a un sito Web o alla pagina Web, può esserci un requisito per mettere in relazione le funzionalità in base a un attributo specifico. Ad esempio, mettere in relazione contenuti identici in termini di codice e funzionalità nello stesso posto. In tali situazioni, il "chiamata()" E "legamento()"Metodi in JavaScript Assist alla fine dello sviluppatore.

Questo blog discuterà la differenza tra i metodi Call () e Bind () in JavaScript.

Qual è la dissomiglianza tra i metodi Call () e Bind () in JavaScript?

In JavaScript, il "chiamata()"Il metodo invoca un metodo con un oggetto proprietario come argomento. Si lega "Questo"Valore alla funzione ed esegue la stessa funzione.

Sintassi di call () Metodo in JavaScript

document = function.Chiama (argn)

Nella sintassi data:

  • "funzione"Si riferisce alla funzione che verrà eseguita.
  • "argn"Corrisponde agli argomenti che devono essere passati alla funzione.

Mentre il "legamento()"Il metodo consente all'oggetto di recuperare un metodo da un altro oggetto. Questo metodo si lega "Questo"Valore alla funzione e restituisce una nuova funzione.

Sintassi del metodo bind () in JavaScript

funzione.bind (thyarg [, arg1 [, arg2 [,…]])

Nella sintassi sopra:

  • "thyarg"È il valore della funzione mirato.
  • "Arg1" E "arg2"Sono gli argomenti della funzione.

Esempio 1: come utilizzare il metodo call () in javascript?

In questo esempio, il metodo dichiarato può essere utilizzato per invocare una funzione e associare un particolare oggetto ad esso:


functionMyFunction ()
restituire "questo è un semplice" + questo.firstname + "" + questo.LastName + ".";

const element1 =
primo nome: "web",
LastName: "Pagina"

const element2 =
primo nome: "web",
LastName: "Sito"

documento.getElementById ("Demo").InnerHtml = myFunction.chiamare (elemento1);

Nel codice sopra:

  • In primo luogo, includi un “"Elemento per contenere l'output risultante.
  • Ora nel codice JavaScript, definisce una funzione denominata "myFunction ()".
  • Nella sua definizione, Oggetto associato "Questo" con il "tasti"Di un particolare elementi.
  • Successivamente, crea due oggetti chiamati "elemento1" E "elemento2", Rispettivamente, sotto forma di"valore chiave"Coppie.
  • Nel passaggio successivo, applica il "getElementById ()"Metodo per accedere al creato"div".
  • Inoltre, associare il “chiamata()"Metodo con la funzione dichiarata. Come suo parametro, passare l'oggetto precedente in modo tale che la funzione chiama l'oggetto particolare e le sue proprietà vengono aggiunte.
  • Infine, utilizza il "Innerhtml"Proprietà per visualizzare il risultato in"div".

Produzione

Nell'output di cui sopra, si può vedere che le funzionalità sia della funzione che dell'oggetto vengono aggiunte.

Esempio 2: come utilizzare il metodo bind () in javascript?

In questo esempio, il "legamento()"Il metodo può essere applicato per legare un particolare oggetto con la chiave di un oggetto specifico specificato come funzione:


const object1 =
MEM1: "HTML",
MEM2: "CSS",
myFunction: function ()
restituire "questo è" + questo.mem1 + "&" + questo.mem2;


const object2 =
MEM1: "JavaScript",
MEM2: "jQuery",

Lascia che Message = Object1.myfunction.bind (oggetto2);
documento.getElementById ("Demo").InnerHtml = message ();

Qui in questa riga di codice:

  • In primo luogo, nel codice HTML, includi il ""Elemento con l'ID dichiarato chiamato"Demo".
  • Nel codice JS, crea una matrice di oggetti denominati "Oggetto1"Avere i valori dichiarati sotto forma di"valore chiave"Coppie.
  • Notare che "myfunction"Si riferisce alla chiave dell'oggetto e la funzione è definita come valore.
  • Nella definizione della funzione, fare riferimento ai tasti oggetto tramite "Questo"Oggetto.
  • Successivamente, allo stesso modo, crea un altro oggetto con le proprietà dichiarate.
  • Ora, fare riferimento alla chiave dell'oggetto associato "myfunction"E attaccare il"legamento()"Metodo tale che l'oggetto particolare nel parametro del metodo sia integrato con la funzione.
  • Infine, applica il "getElementById ()Metodo "per recuperare il"div"Elemento e visualizzare il risultato tramite"Innerhtml" proprietà.

Produzione

Il risultato di cui sopra mostra che il requisito desiderato è soddisfatto.

Conclusione

In JavaScript, la differenza principale tra il chiamata()" E "legamento()"I metodi è che il metodo call () si lega"Questo"Valore alla funzione ed esegue la funzione, mentre il"legamento()"Il metodo si lega"Questo"Valore alla funzione e restituisce una nuova funzione. Questo blog ha discusso delle differenze fondamentali tra i metodi Call () e Bind in JavaScript con l'aiuto degli esempi.