तीर फ़ंक्शन का उपयोग ऑब्जेक्ट विधि के रूप में नहीं किया जाना चाहिए क्योंकि एक तीर फ़ंक्शन का अपना यह नहीं होता है। यह संलग्न लेक्सिकल स्कोप का यह मान लेता है जो ऑब्जेक्ट के बजाय विंडो ऑब्जेक्ट है। यह समस्याएँ पैदा कर सकता है क्योंकि अब हम इच्छित वस्तु के बजाय विंडो ऑब्जेक्ट गुणों को घेरेंगे और उन तक पहुँच प्राप्त करेंगे।
निम्नलिखित कोड दिखा रहा है कि आपको जावास्क्रिप्ट तीर फ़ंक्शन का उपयोग कब नहीं करना चाहिए -
उदाहरण
<!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; } .result { font-size: 20px; font-weight: 500; color: blueviolet; } </style> </head> <body> <h1>When to not use the arrow functions</h1> <br /> <div class="result"></div> <br /> <button class="Btn">CLICK HERE</button> <h3>Click on the above button to call the add() method of object obj</h3> <script> let BtnEle = document.querySelector(".Btn"); let resEle = document.querySelector(".result"); let obj = { a: 22, b: 44, add: () => { return this.a + this.b; }, }; BtnEle.addEventListener("click", (event) => { resEle.innerHTML = `The sum of ${obj.a} and ${obj.b} = ${obj.add()}`; }); </script> </body> </html>
आउटपुट
'यहां क्लिक करें' बटन पर क्लिक करने पर -