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 методу