⊗jsPmCxBM 443 of 505 menu

Врзување на контекст преку методот bind во JavaScript

Следниот метод bind овозможува трајно да се врзе контекстот на функција. Како резултат овој метод враќа нова функција, во која this ќе има цврсто зададена вредност.

Да погледнеме на пример.

Нека имаме input поле:

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

Нека референцата кон ова input поле е запишана во променливата 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 се наоѓа input поле со value, еднакво на 'text'):

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 така што this внатре во функцијата func секогаш да покажува на input полето од променливата elem.

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