⊗jsPmCxBM 443 of 505 menu

JavaScriptda bind metodi orqali kontekstni bog‘lash

Quyidagi bind metodi kontekstni funktsiyaga doimiy ravishda bog‘lash imkonini beradi. Ushbu metod o‘z natijasida yangi funktsiyani qaytaradi, uning ichida this qattiq belgilangan qiymatga ega bo‘ladi.

Keling, misol orqali ko'rib chiqaylik.

Faraz qilaylik, bizda kirish maydoni mavjud:

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

Faraz qilaylik, ushbu kirish maydoniga havola elem o‘zgaruvchisiga yozilgan:

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

Faraz qilaylik, bizda quyidagi func funktsiyasi ham mavjud:

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

Keling, bind yordamida func funktsiyasining nusxasi bo‘lgan yangi funktsiya yarataylik, lekin unda this har doim elem ga teng bo‘ladi:

let newFunc = func.bind(elem);

Endi newFunc o‘zgaruvchisida funktsiya yotadi. Keling uni chaqiraylik, birinchi parametrga '1', ikkinchisiga esa '2' berib (eslatma: elem da qiymati 'text' ga teng bo‘lgan kirish maydoni mavjud):

newFunc('1', '2');

Keling hammasini birlashtiramiz:

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

bind ishlash natijasini yangi newFunc funktsiyasiga yozish shart emas, shunchaki func ni qayta yozish mumkin. Shundan so‘ng func avvalgidek funktsiya bo‘lib qoladi, lekin this qattiq bog‘langan bo‘ladi:

func = func.bind(elem);

Faraz qilaylik, quyidagi kod berilgan:

<input id="elem" value="hello"> let elem = document.getElementById('elem'); function func(name, surname) { console.log(this.value + ', ' + name + ' ' + surname); } // bu yerda bind() bilan konstruktsiya yozing func('John', 'Smit'); // bu yerda 'hello, John Smit' chiqishi kerak func('Eric', 'Luis'); // bu yerda 'hello, Eric Luis' chiqishi kerak

Ko‘rsatilgan joyda bind metodi bilan konstruktsiya yozing, shunda func funktsiyasi ichidagi this har doim elem o‘zgaruvchisidagi kirish maydoniga ishora qilsin.

Oʻzbek
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекTiếng Việt
Biz sayt ishlashi, tahlil qilish va shaxsiylashtirish uchun cookie-fayllardan foydalanamiz. Ma'lumotlarni qayta ishlash Maxfiylik siyosatiga muvofiq amalga oshiriladi.
hammasini qabul qilish sozlash rad etish