⊗jsPmCxBM 443 of 505 menu

Povezovanje konteksta z metodo bind v JavaScript

Naslednja metoda bind omogoča trajno povezovanje konteksta s funkcijo. Kot rezultat ta metoda vrne novo funkcijo, znotraj katere bo this imel togo določeno vrednost.

Poglejmo si primer.

Recimo, da imamo vnosno polje:

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

Recimo, da je povezava do tega vnosnega polja shranjena v spremenljivko elem:

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

Recimo, da imamo tudi naslednjo funkcijo func:

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

Uporabimo bind za ustvarjanje nove funkcije, ki bo kopija funkcije func, vendar bo this v njej vedno enak elem:

let newFunc = func.bind(elem);

Zdaj v spremenljivki newFunc leži funkcija. Pokličimo jo in podajmo prvi parameter '1' in drugi '2' (opomnik: v elem leži vnosno polje z value, enakim 'text'):

newFunc('1', '2');

Povežimo vse skupaj:

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

Ni nujno, da rezultat delovanja bind zapišemo v novo funkcijo newFunc, lahko preprosto prepišemo func. Po tem bo func enaka funkcija kot prej, vendar s togo povezanim this:

func = func.bind(elem);

Recimo, da je dana naslednja koda:

<input id="elem" value="hello"> let elem = document.getElementById('elem'); function func(name, surname) { console.log(this.value + ', ' + name + ' ' + surname); } // tukaj napišite konstrukcijo z bind() func('John', 'Smit'); // tukaj naj izpiše 'hello, John Smit' func('Eric', 'Luis'); // tukaj naj izpiše 'hello, Eric Luis'

Napišite na označenem mestu konstrukcijo z metodo bind tako, da bo this znotraj funkcije func vedno kazal na vnosno polje iz spremenljivke elem.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni