Metodo call

Il metodo call permette di chiamare una funzione con un contesto specificato. Il primo parametro del metodo deve essere il contesto della funzione, e i parametri successivi - i parametri della funzione.

Sintassi

javascriptfunzione.call(contesto, parametro1, parametro2...);

Esempio

Supponiamo di avere un input:

html<input id="elem" value="text">

Supponiamo anche una funzione che accetta tre parametri:

javascriptfunction func(param1, param2, param3) {
  console.log(this.value + param1 + param2 + param3);
}

Chiamiamo la nostra funzione in modo che this all'interno della funzione sia uguale al nostro input, e allo stesso tempo passandole come parametri i numeri 1, 2 e 3:

javascriptlet elem = document.querySelector('#elem');
func.call(elem, 1, 2, 3);

Esempio

Supponiamo che la funzione non accetti parametri:

javascriptfunction func() {
  console.log(this.value);
}

In questo caso, quando si chiama questa funzione tramite call è sufficiente passare solo il primo parametro con il contesto:

javascriptlet elem = document.querySelector('#elem');
func.call(elem);

Vedi anche

  • metodo apply,
    che chiama una funzione con un contesto
  • metodo bind,
    che lega il contesto a una funzione