Метод bind
Метод bind функцияга контекстни боглаш учун хизмат қилади.
Биринчи параметр сифатида контекстни берish керак,
keyingi параметрлар эса функциянинг параметрлари
бўлади. Метод янги функцияни қайтаради,
унинг ичида 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' берib:
newFunc('1', '2');
Келинг ҳаммасини бир joyga to'playmiz:
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);