Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

JavaScript Function call(): this बाइंडिंग नियंत्रित करें

Function.prototype.call() मेथड किसी फंक्शन को दिए गए this मान और व्यक्तिगत रूप से प्रदान किए गए आर्गुमेंट्स के साथ कॉल करता है। यह किसी ऑब्जेक्ट के मेथड को दूसरे ऑब्जेक्ट पर "उधार" लेने की अनुमति देता है।

उदाहरण

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> 
    body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; padding: 20px; } 
    .sample { font-size: 18px; font-weight: 500; } 
    button { padding: 10px 20px; background: #fd7e14; color: white; border: none; border-radius: 4px; cursor: pointer; } 
</style> </head> <body> 
<h1>JavaScript call() मेथड</h1> 
<div class="sample"></div> 
<button class="Btn">वयस्कता जांचें (call)</button> 
<h3>ऊपर दिए गए बटन पर क्लिक करके जांचें कि वयस्क हैं या नहीं</h3> 
<script> 
    const sampleEle = document.querySelector(".sample"); 
    const person = { name: "रोहन", age: 22 }; 
    
    function checkAdult(vehicle, country) { 
        if (this.age > 18) { 
            sampleEle.innerHTML = this.name + " आप वयस्क हैं और " + vehicle + " चला सकते हैं " + country + " में"; 
        } else { 
            sampleEle.innerHTML = this.name + " आप वयस्क नहीं हैं और " + vehicle + " नहीं चला सकते " + country + " में"; 
        } 
    } 
    
    document.querySelector(".Btn").addEventListener("click", () => { 
        checkAdult.call(person, 'कार', 'भारत'); 
    }); 
</script> </body> </html>

आउटपुट

क्लिक करने पर: रोहन आप वयस्क हैं और कार चला सकते हैं भारत में

call() vs apply() vs bind()

मेथडआर्गुमेंट्सनिष्पादनउपयोग
call()व्यक्तिगत (कॉमा सेपरेटेड)तुरंतत्वरित कॉल, ज्ञात आर्गुमेंट्स
apply()एरे/एरे-लाइकतुरंतडायनामिक आर्गुमेंट्स, Math.max आदि
bind()व्यक्तिगतनया फंक्शन लौटाता हैबाद में उपयोग, इवेंट हैंडलर

व्यावहारिक उदाहरण

// 1. एरे पर Math.max (apply के साथ बेहतर)
const numbers = [5, 10, 3, 8];
Math.max.call(null, ...numbers);     // 10 (स्प्रेड ऑपरेटर)
Math.max.apply(null, numbers);       // 10 (क्लासिक)

// 2. Array-like को Array में बदलें
function argsToArray() {
    return Array.prototype.slice.call(arguments);
}
argsToArray(1, 2, 3); // [1, 2, 3]

// 3. मेथड उधार लेना
const obj = { name: "JS" };
Array.prototype.push.call(obj, "hello"); // {0: "hello", name: "JS", length: 1}

// 4. कंस्ट्रक्टर चेनिंग
function Parent(name) { this.name = name; }
function Child(name, age) { Parent.call(this, name); this.age = age; }
  1. जावास्क्रिप्ट में फ़ंक्शन प्रोटोटाइप जावास्क्रिप्ट में फ़ंक्शन प्रोटोटाइप

    जावास्क्रिप्ट में बनाए गए फ़ंक्शन्स में हमेशा जावास्क्रिप्ट इंजन द्वारा प्रोटोटाइप प्रॉपर्टी जोड़ी जाती है। प्रोटोटाइप प्रॉपर्टी एक ऑब्जेक्ट है जिसमें डिफ़ॉल्ट रूप से कंस्ट्रक्टर प्रॉपर्टी होती है। फ़ंक्शन प्रोटोटाइप को निम्न द्वारा एक्सेस किया जा सकता है - functionName.prototype जब ऑब्जेक्ट्स को फ

  1. जावास्क्रिप्ट में फ़ंक्शन बॉरोइंग जावास्क्रिप्ट में फ़ंक्शन बॉरोइंग

    call(), apply() और bind() का उपयोग जावास्क्रिप्ट में मेथड्स बॉरो करने के लिए किया जाता है। जावास्क्रिप्ट में मेथड्स बॉरो करने के लिए निम्नलिखित कोड है: उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport&qu

  1. JavaScript में onclick() के साथ फ़ंक्शन कॉल करें JavaScript में onclick() के साथ फ़ंक्शन कॉल करें

    मान लीजिए निम्नलिखित हमारा बटन है: Press Me हमें उपरोक्त बटन के क्लिक पर फ़ंक्शन कॉल करने की आवश्यकता है। उदाहरण निम्नलिखित कोड देखें: Document Press Me function displayingMessageOnButtonClick() { const showMessage = document.getElementById(showTheTextMessage); show