परिचय
जावास्क्रिप्ट में, एक ही फ़ंक्शन को फ़ंक्शन के रूप में (स्टैंडअलोन) या मेथड के रूप में (ऑब्जेक्ट की प्रॉपर्टी के रूप में) इनवोक किया जा सकता है। this का मान इस बात पर निर्भर करता है कि इसे कैसे कॉल किया गया है।
उदाहरण
निम्न कोड फ़ंक्शन को फ़ंक्शन और मेथड के रूप में इनवोक करने पर है:
<!DOCTYPE html> <html lang="hi"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>फ़ंक्शन इनवोकेशन</title> <style> body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; } .result { font-size: 20px; font-weight: 500; } </style> </head> <body> <h1>फ़ंक्शन को फ़ंक्शन और मेथड के रूप में इनवोक करें</h1> <div style="color: green;" class="result"></div> <button class="Btn">यहाँ क्लिक करें</button> <h3> फ़ंक्शन को फ़ंक्शन और मेथड के रूप में इनवोक करने के लिए ऊपर दिए गए बटन पर क्लिक करें </h3> <script> const resEle = document.querySelector(".result"); function add(a, b) { return a + b; } const obj = { firstName: 'रोहन', lastName: 'शर्मा', welcome() { return 'नमस्ते ' + this.firstName + ' ' + this.lastName; } }; document.querySelector(".Btn").addEventListener("click", () => { resEle.innerHTML = 'फ़ंक्शन इनवोकेशन add(2,3): ' + add(2, 3) + '<br>'; resEle.innerHTML += 'मेथड इनवोकेशन obj.welcome(): ' + obj.welcome() + '<br>'; }); </script> </body> </html>
आउटपुट
उपरोक्त कोड निम्न आउटपुट उत्पन्न करेगा:

'यहाँ क्लिक करें' बटन पर क्लिक करने पर:

मुख्य अंतर
| पहलू | फ़ंक्शन इनवोकेशन | मेथड इनवोकेशन |
|---|---|---|
| सिंटैक्स | fn() | obj.method() |
this मान | ग्लोबल/undefined (स्ट्रिक्ट मोड) | ऑब्जेक्ट (obj) |
| उपयोग | यूटिलिटी फ़ंक्शन्स | ऑब्जेक्ट बिहेवियर |
अन्य इनवोकेशन पैटर्न्स
- कंस्ट्रक्टर इनवोकेशन:
new Fn()→this= नया ऑब्जेक्ट - इनडायरेक्ट इनवोकेशन:
fn.call(obj),fn.apply(obj)→this= स्पष्ट ऑब्जेक्ट - एरो फ़ंक्शन: लेक्सिकल
this(आसपास के स्कोप से इनहेरिट)