bind მეთოდი

bind მეთოდი აკავშირებს კონტექსტს ფუნქციასთან. პირველ პარამეტრად უნდა გადაეცეს კონტექსტი, ხოლო მომდევნო პარამეტრებად - ფუნქციის პარამეტრები. მეთოდი აბრუნებს ახალ ფუნქციას, რომლის შიგნითაც this ტოლი იქნება გადაცემული კონტექსტის.

სინტაქსი

javascriptფუნქცია.bind(კონტექსტი, პარამეტრი1, პარამეტრი2...);

მაგალითი

დავუშვათ, გვაქვს ინფუთი:

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

დავუშვათ, ამ ინფუთის მისამართი ჩაწერილია ცვლადში elem:

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

დავუშვათ, ასევე გვაქვს შემდეგი ფუნქცია func:

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

bind-ის გამოყენებით შევქმნათ ახალი ფუნქცია, რომელიც იქნება ფუნქცია func-ის ასლი, მაგრამ this მასში ყოველთვის იქნება elem-ის ტოლი:

javascriptlet newFunc = func.bind(elem);

ახლა ცვლადში newFunc ჩაწერილია ფუნქცია. გამოვიძახოთ იგი, პირველ პარამეტრად გადავცეთ '1', ხოლო მეორედ '2':

javascriptnewFunc('1', '2');

შევკრიბოთ ყველაფერი ერთად:

javascriptlet 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-ის გადაწერა:

javascriptlet func = func.bind(elem);

ასევე იხილეთ

  • მეთოდი call,
    რომელიც იძახებს ფუნქციას კონტექსტთან ერთად
  • მეთოდი apply,
    რომელიც იძახებს ფუნქციას კონტექსტთან ერთად