bind მეთოდი
bind მეთოდი აკავშირებს კონტექსტს ფუნქციასთან.
პირველ პარამეტრად უნდა გადაეცეს
კონტექსტი, ხოლო მომდევნო პარამეტრებად - ფუნქციის
პარამეტრები. მეთოდი აბრუნებს ახალ ფუნქციას,
რომლის შიგნითაც this ტოლი იქნება გადაცემული
კონტექსტის.
სინტაქსი
ფუნქცია.bind(კონტექსტი, პარამეტრი1, პარამეტრი2...);
მაგალითი
დავუშვათ, გვაქვს ინფუთი:
<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':
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-ის გადაწერა:
let func = func.bind(elem);