⊗jsPmCxBM 443 of 505 menu

JavaScript-də bind metodu ilə kontekstin bağlanması

Növbəti metod bind konteksti funksiyaya həmişəlik bağlamağa imkan verir. Bu metod öz nəticəsi olaraq yeni bir funksiya qaytarır, onun daxilində this sərt şəkildə təyin edilmiş qiymətə malik olacaq.

Gəlin nümunə üzərində baxaq.

Tutaq ki, bizim bir inputumuz var:

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

Tutaq ki, bu inputa istinad dəyişəndə elem yazılıb:

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

Tutaq ki, bizim həmçinin aşağıdakı funksiyamız var func:

function func(param1, param2) { console.log(this.value + param1 + param2); }

Gəlin bind köməyi ilə yeni funksiya düzəldək, hansı ki, func funksiyasının surəti olacaq, amma this onun daxilində həmişə elem bərabər olacaq:

let newFunc = func.bind(elem);

İndi newFunc dəyişənində funksiya yerləşir. Gəlin onu çağıraq, birinci parametrə '1', ikinciyə isə '2' ötürək (xatırladım ki, elem-də value-sü 'text' olan input yerləşir):

newFunc('1', '2');

Gəlin hamısını bir yerə yığaq:

let elem = document.getElementById('elem'); function func(param1, param2) { console.log(this.value + param1 + param2); } let newFunc = func.bind(elem); newFunc('1', '2'); // çıxardacaq 'text12'

bind işinin nəticəsini yeni funksiyada newFunc yazmaq mütləq deyil, sadəcə func-i yenidən yaza bilərsiniz. Bundan sonra func əvvəl olduğu kimi eyni funksiya olacaq, amma sərt bağlanmış this ilə:

func = func.bind(elem);

Tutaq ki, aşağıdakı kod verilib:

<input id="elem" value="hello"> let elem = document.getElementById('elem'); function func(name, surname) { console.log(this.value + ', ' + name + ' ' + surname); } // bura bind() ilə konstruksiya yazın func('John', 'Smit'); // bura çıxarmalıdır 'hello, John Smit' func('Eric', 'Luis'); // bura çıxarmalıdır 'hello, Eric Luis'

Göstərilən yerdə bind metodu ilə konstruksiya yazın ki, func funksiyasının daxilində this həmişə elem dəyişənindən olan inputu göstərsin.

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