JavaScript-de bind metodi arkaly konteksti çäkmek

Indiki metod bind funksiýa bilen konteksti hemişelik çäkmäge mümkinçilik berýär. Bu metodiň netijesi ýaňy bir funksiýa bolup, onuň içinde this berk kesgitlenen baha bolýar.

Geliň mysalda göreliň.

Bizde input bolsun:

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

Bu inputa çykgyt üýtgeýjide elem ýazylan bolsun:

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

Bizde şeýle funksiýa func hem bolsun:

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

bind ulanyp, func funksiýasynyň nusgasynyň ýaňysyny ýasalyň, ýöne onuň içindäki this hemişe elem deň bolsun:

javascriptlet newFunc = func.bind(elem);

Indi newFunc üýtgeýjisinde funksiýa bar. Geliň ony çagyryň, birinji parametre hökmünde '1', ikinjisinde bolsa '2' beriň (ýatladýarys, elem üýtgeýjisinde value-sy 'text' deň bolan input bar):

javascriptnewFunc('1', '2');

Geliň hemmesini bilelikde jemleýäliň:

javascriptlet elem = document.getElementById('elem');

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

let newFunc = func.bind(elem);
newFunc('1', '2'); // 'text12' çykar

bind işiniň netijesini hökmany newFunc ýaňy funksiýada ýazmaly däldir, diňe func üýtgedip bileris. Ondan soň func öňkisi ýaly funksiýa bolar, ýöne this birikdirilen bolýar:

javascriptfunc = func.bind(elem);
Задание 1

Aşakdaky kod berlen bolsun:

html<input id="elem" value="hello">
javascriptlet elem = document.getElementById('elem');

function func(name, surname) {
  console.log(this.value + ', ' + name + ' ' + surname);
}

// bu ýere bind() metodi bilen gurluşy ýazyň

func('John', 'Smit'); // bu ýerde 'hello, John Smit' çykmagy gerek
func('Eric', 'Luis'); // bu ýerde 'hello, Eric Luis' çykmagy gerek

Görkezilen ýerde bind metodi bilen gurluşy şeýle ýazyň, func funksiýasynyň içindäki this üýtgeýjiden gelen inputa görkezmeli.