⊗jsPmCxBM 443 of 505 menu

კონტექსტის მიბმა bind მეთოდის საშუალებით JavaScript-ში

შემდეგი მეთოდი 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 ისე, რომ this შიგნით ფუნქციის func ყოველთვის მიუთითებდეს ინფუთზე ცვლადიდან 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
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა