⊗jsPmCxInr 433 of 505 menu

Grondbeginsels van Kontekswerking in JavaScript

Gestel ons het 'n funksie func, binne-in waarvan this gebruik word:

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

Waarheen wys this in hierdie funksie? En ons weet nie. En JavaScript weet nie. En die funksie self weet nie. Dit beteken dat op die oomblik van skepping van die funksie, dit waarheen presies this wys, nie bepaal is nie. En dit sal slegs bepaal word wanneer hierdie funksie opgeroep word.

Gestel ons het 'n invoerveld:

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

Laat ons hierdie funksie func aan hierdie invoerveld bind sodat dit uitgevoer word wanneer die invoerveld fokus verloor. Nou sal op die oomblik van uitvoering van die funksie this na ons invoerveld wys:

let elem = document.querySelector('#elem'); elem.addEventListener('blur', func); function func() { console.log(this.value); // met fokusverlies sal dit 'text' uitdruk }

Maar ons kan nie net een invoerveld hê nie, maar verskeie:

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

En aan elkeen van hierdie invoervelde kan ons ons funksie func bind. In hierdie geval vir die eerste element sal this op die oomblik van oproep van die funksie daarna wys, en vir die tweede - daarna.

In die praktyk beteken dit dat this binne die funksie afhang van op watter invoerveld ons fokus verloor het:

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

In die algemeen is so 'n eienskap van this baie gerieflik - ons skep net een funksie en bind dit aan enige aantal invoervelde. As this nie na daardie element gewys het nie, waarin die gebeurtenis plaasgevind het, sou ons dit nie kon regkry nie - ons sou vir elke invoerveld ons eie funksie met dieselfde kode moes skep!

Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp