⊗jsPmCxInr 433 of 505 menu

Bases du travail avec le contexte en JavaScript

Supposons que nous ayons une fonction func, à l'intérieur de laquelle this est utilisé :

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

Sur quoi pointe this dans cette fonction ? Et nous ne le savons pas. Et JavaScript ne le sait pas. Et la fonction elle-même ne le sait pas. C'est-à-dire qu'au moment de la création de la fonction, ce sur quoi pointe this n'est pas déterminé. Et cela ne sera déterminé que lorsque cette fonction sera appelée.

Supposons que nous ayons un champ de saisie :

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

Attachons à ce champ de saisie notre fonction func de sorte qu'elle s'exécute lors de la perte de focus du champ. Maintenant, au moment de l'exécution de la fonction, this pointera vers notre champ de saisie :

let elem = document.querySelector('#elem'); elem.addEventListener('blur', func); function func() { console.log(this.value); // lors de la perte de focus, affichera 'text' }

Mais nous pourrions avoir non pas un seul champ de saisie, mais plusieurs :

<input id="elem1" value="text1"> <input id="elem2" value="text2">

Et nous pouvons attacher notre fonction func à chacun de ces champs de saisie. Dans ce cas, pour le premier élément, this au moment de l'appel de la fonction pointera vers lui, et pour le second - vers lui.

En pratique, cela signifie que this à l'intérieur de la fonction dépend du champ de saisie sur lequel nous avons perdu le focus :

let elem1 = document.querySelector('#elem1'); elem1.addEventListener('blur', func); let elem2 = document.querySelector('#elem2'); elem2.addEventListener('blur', func); function func() { console.log(this.value); // affichera soit 'text1', soit 'text2' }

En général, cette particularité de this est très pratique - nous créons une seule fonction et l'attachons à n'importe quel nombre de champs de saisie. Si this ne pointait pas vers l'élément dans lequel l'événement s'est produit, alors nous ne pourrions pas faire cela - il faudrait créer pour chaque champ de saisie sa propre fonction avec le même code !

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser