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);