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 विधि,
    जो फ़ंक्शन को कॉन्टेक्स्ट के साथ कॉल करती है