⊗jsPmCxBM 443 of 505 menu

Konteksto pririšimas naudojant bind metodą JavaScript

Kitas metodas bind leidžia visam laikui pririšti kontekstą prie funkcijos. Šis metodas grąžina naują funkciją, kurios viduje this turės griežtai nustatytą reikšmę.

Pažiūrėkime pavyzdžiu.

Tarkime, kad turime įvesties lauką:

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

Tarkime, kad nuoroda į šį įvesties lauką įrašyta į kintamąjį elem:

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

Tarkime, kad taip pat turime šią funkciją func:

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

Naudodami bind sukurkime naują funkciją, kuri bus funkcijos func kopija, bet this joje visada bus lygus elem:

let newFunc = func.bind(elem);

Dabar kintamajame newFunc yra funkcija. Iškvieskime ją, perduodant į pirmą parametrą '1', o į antrą '2' (primenu, kad elem yra įvesties laukas su value, lygiu 'text'):

newFunc('1', '2');

Sujungkime viską kartu:

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

Nebūtinai reikia įrašyti bind rezultatą į naują funkciją newFunc, galima tiesiog perrašyti func. Po to func bus tokia pati funkcija, kaip ir buvo, bet su griežtai surištu this:

func = func.bind(elem);

Tarkime, kad duotas toks kodas:

<input id="elem" value="hello"> let elem = document.getElementById('elem'); function func(name, surname) { console.log(this.value + ', ' + name + ' ' + surname); } // čia parašykite konstrukciją su bind() func('John', 'Smit'); // čia turi išvesti 'hello, John Smit' func('Eric', 'Luis'); // čia turi išvesti 'hello, Eric Luis'

Parašykite nurodytoje vietoje konstrukciją su metodu bind taip, kad this funkcijos func viduje visada rodytų į įvesties lauką iš kintamojo elem.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti