Context binding via de call methode in JavaScript

Dus, we hebben uitgezocht hoe this echt werkt. Laten we nu de methodes bekijken die het mogelijk maken om geforceerd aan te geven in welke context een functie wordt aangeroepen (dat wil zeggen geforceerd zeggen waar this gelijk aan is).

De eerste methode die we zullen behandelen, heet call. Laten we de werking ervan bekijken aan de hand van een voorbeeld. Stel we hebben een input:

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

Laten we een referentie naar deze input ophalen en deze in een variabele elem opslaan:

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

Laten we nu een functie func maken, waarin we this.value uitloggen:

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

Onze functie weet nog niet waarnaar this verwijst. Als we hem zouden binden via addEventListener, dan wel. Maar dat gaan we niet doen. In plaats daarvan roepen we onze functie gewoon aan, en zeggen we haar dat this gelijk moet zijn aan elem.

Dit gaat als volgt: func.call(elem). Deze code is equivalent aan het simpel aanroepen van de functie func als volgt: func(), alleen met de voorwaarde dat this gelijk is aan elem.

Dus, de syntaxis van de call methode is als volgt: functie.call(object). Laten we alles samenvoegen:

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

function func() {
  console.log(this.value); // geeft de value van de input weer
}
func.call(elem);
Задание 1

Gegeven is de functie:

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

Gegeven zijn drie inputs:

html<input id="elem1" value="text1">
<input id="elem2" value="text2">
<input id="elem3" value="text3">

Gebruik de methode call en de functie func om de value van elk van de inputs op het scherm weer te geven.