Метад 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);