⊗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-де 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 әдісі бар конструкцияны жазыңыз, сонда 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çeЎзбекOʻzbekTiếng Việt
Біз сайттың жұмысы, аналитика және персонализация үшін cookie файлдарын қолданамыз. Деректерді өңдеу Құпиялылық саясаты бойынша жүреді.
барлығын қабылдау баптау қабылдамау