13 of 17 menu

Хатои this дар коргузори ҷилавгири JavaScript

Вақти охир мода шудааст, ки дар ҳар ҷо ба ҷои функсияҳои одӣ аз функсияҳои ҷилавгир истифода баред. Аммо ин функсияҳо махсусияте доранд - онҳо this нигоҳ намедоранд. Биёед бубинем, ки бо кадом мушкилие сабаби ин метавонем рӯ ба рӯ шавем.

Бигзор мо як тугма дошта бошем:

<button>матн</button>

Ишора ба ин тугмаро дар тағирёбанда мегирем:

let button = document.querySelector('button');

Бар тугма коргузори воқеаро насб мекунем, ки бо истифода аз функсияи ҷилавгир аст:

button.addEventListener('click', () => { console.log(this.textContent); });

Дар ин ҷост, ки моро сирприз интизор аст: this дар функсияи ҷилавгир ба унсуре, ки воқеа дар он рӯй додааст, дахл нахоҳад дошт.

Биёед бубинем, ки чӣ бо ин кор кардан мумкин аст.

Ҳалли якум

Мумкин аст аз истифодаи this даст кашед ва аз тағирёбандае, ки воқеа ба он замима шудааст, истифода баред:

button.addEventListener('click', () => { console.log(button.textContent); });

Ҳалли дуюм

Мумкин аст унсуреро, ки воқеа ба он замима шудааст, тавассути event.target гиред:

button.addEventListener('click', (event) => { console.log(event.target.textContent); });

Ҳалли сеюм

Мумкин аст аз функсияи ҷилавгир даст кашед ва аз функсияи одӣ истифода баред:

button.addEventListener('click', function() { console.log(this.textContent); });
Тоҷикӣ
AfrikaansAzə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
Мо барои коркарди сомона, таҳлил ва шахсӣ кардан аз cookie истифода мебарем. Коркарди маълумот мувофиқи Сиёсати махфият сурат мегирад.
ҳамаро қабул кардан танзим кардан рад кардан