⊗jsPmCxBM 443 of 505 menu

JavaScript да bind методи орқали контекстни боглаш

Кейинги метод bind функцияга контекстни мангу боглаш имкони беради. Ушбу метод ўз натижасида янги функцияни қайтаради, унинг ичида this қаттик белгиланган қийматга эга бўлади.

Келгила, мисолда кўрамиз.

Фарз қилайлик, бизда инпут мавжуд:

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

Фарз қилайлик, ушбу инпутга ҳавола elem ўзгарувчисига ёзилган:

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

Фарз қилайлик, бизда куйидаги функция func ҳам мавжуд:

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

Келгила, bind ёрдамида func функциясининг нусхаси бўлган янги функция ясайлик, лекин унда this ҳар доим elem га тенг бўлади:

let newFunc = func.bind(elem);

Энди newFunc ўзгарувчисида функция ётади. Келгила уни чақирейлик, биринчи параметрга '1', иккинчига '2' узатиб (эслатма, elem да 'text' га тенг value бўлган инпут ётади):

newFunc('1', '2');

Келгила, ҳаммасини бир жойга тўплаймиз:

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

bind иши натижасини янги newFunc функциясига ёзиш шарт эмас, оддигина func ни қайта ёзиш мумкин. Шундан сўнг func ўзи ҳам ўзгаришсиз қолади, лекин this қаттик богланиб бўлади:

func = func.bind(elem);

Фарз қилайлик, куйидаги код берилган:

<input id="elem" value="hello"> let elem = document.getElementById('elem'); function func(name, surname) { console.log(this.value + ', ' + name + ' ' + surname); } // бу ерда bind() билан конструкция ёзинг func('John', 'Smit'); // бу ерда 'hello, John Smit' чиқиши керак func('Eric', 'Luis'); // бу ерда 'hello, Eric Luis' чиқиши керак

Кўрсатилган жойда bind методи билан конструкция ёзингки, func функцияси ичидаги this ҳар доим elem ўзгарувчисидаги инпутга ишора қилсин.

Ўзбек
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш