⊗jsPmCxInr 433 of 505 menu

JavaScript-də kontekstlə işin əsasları

Tutaq ki, bizim içində this istifadə olunan func adlı bir funksiyamız var:

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

Bu funksiyada this nəyə işarə edir? Biz bilmirik. Və JavaScript də bilmir. Və funksiyanın özü də bilmir. Yəni funksiya yaradılan zaman this-in dəqiq nəyə işarə edəcəyi müəyyən deyil. Və bu, yalnız həmin funksiya çağırılanda müəyyən ediləcək.

Tutaq ki, bizim bir inputumuz var:

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

Gəlin bu inputa func funksiyamızı elə bağlayaq ki, input fokusu itirdikdə icra olunsun. İndi funksiya icra olunan zaman this bizim inputumuza işarə edəcək:

let elem = document.querySelector('#elem'); elem.addEventListener('blur', func); function func() { console.log(this.value); // fokus itirildikdə 'text' çap edəcək }

Amma bizim bir yox, bir neçə inputumuz ola bilər:

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

Və biz hər bir bu inputa func funksiyamızı bağlaya bilərik. Bu halda, birinci element üçün funksiya çağırılan zaman this ona, ikinci üçün isə ona işarə edəcək.

Praktikada bu o deməkdir ki, funksiyanın içərisindəki this hansı inputda fokus itirdiyimizdən asılıdır:

let elem1 = document.querySelector('#elem1'); elem1.addEventListener('blur', func); let elem2 = document.querySelector('#elem2'); elem2.addEventListener('blur', func); function func() { console.log(this.value); // ya 'text1', ya da 'text2' çap edəcək }

Ümumiyyətlə, this-in bu xüsusiyyəti çox rahatdır - biz cəmi bir funksiya yaradırıq və onu istənilən sayda inputa bağlayırıq. Əgər this hadisənin baş verdiyi elementə işarə etməsəydi, bu mümkün olmazdı - hər bir input üçün eyni kodu olan öz funksiyamızı yaratmalı olacaqdıq!

Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČ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
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et