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

जावास्क्रिप्ट में नियमित कार्यों और तीर कार्यों के बीच अंतर

<घंटा/>

एमडीएन के अनुसार, एक एरो फंक्शन एक्सप्रेशन एक नियमित फ़ंक्शन एक्सप्रेशन के लिए एक वाक्यात्मक रूप से कॉम्पैक्ट विकल्प है, हालांकि इसके लिए अपने स्वयं के बाइंडिंग के बिना, तर्क, सुपर, या new.target कीवर्ड। एरो फंक्शन एक्सप्रेशन विधियों के रूप में उपयुक्त नहीं हैं, और इन्हें कंस्ट्रक्टर के रूप में उपयोग नहीं किया जा सकता है।

जावास्क्रिप्ट में नियमित कार्यों और तीर कार्यों में 3 सूक्ष्म अंतर हैं।

इस बाइंडिंग का स्वामी नहीं है

एरो फ़ंक्शंस का अपना यह मान नहीं होता है। एक तीर फ़ंक्शन के अंदर इसका मान हमेशा संलग्न दायरे से विरासत में मिलता है।

उदाहरण

this.a = 100;
let arrowFunc = () => {this.a = 150};
function regFunc() {
   this.a = 200;
}
console.log(this.a)
arrowFunc()
console.log(this.a)
regFunc()
console.log(this.a)

आउटपुट

100
150
150

देखें कि एरो फ़ंक्शन ने इस ऑब्जेक्ट को इसके दायरे से बाहर बदल दिया है। रेगुलर फंक्शन ने अपने आप में ही ये बदलाव किए हैं।

एरो फ़ंक्शंस में तर्क सरणी नहीं होती है

जेएस तर्कों में कार्यों में सरणी एक विशेष वस्तु है जिसका उपयोग फ़ंक्शन में सभी तर्कों को पारित करने के लिए किया जा सकता है। इसी तरह, एरो फ़ंक्शंस का तर्क ऑब्जेक्ट के लिए अपना स्वयं का बंधन नहीं होता है, वे एन्क्लोजिंग स्कोप के तर्कों के लिए बाध्य होते हैं।

एरो फ़ंक्शन कॉल करने योग्य हैं लेकिन निर्माण योग्य नहीं हैं

यदि कोई फ़ंक्शन निर्माण योग्य है, तो इसे नए, यानी नए उपयोगकर्ता () के साथ बुलाया जा सकता है। यदि कोई फ़ंक्शन कॉल करने योग्य है, तो इसे बिना नए (यानी सामान्य फ़ंक्शन कॉल) के कॉल किया जा सकता है।

फ़ंक्शन घोषणाओं / अभिव्यक्तियों के माध्यम से बनाए गए कार्य निर्माण योग्य और कॉल करने योग्य दोनों हैं।

एरो फ़ंक्शंस (और विधियाँ) केवल कॉल करने योग्य हैं। क्लास कंस्ट्रक्टर केवल निर्माण योग्य होते हैं।

यदि आप एक गैर-कॉल करने योग्य फ़ंक्शन को कॉल करने या एक गैर-निर्माण योग्य फ़ंक्शन बनाने का प्रयास कर रहे हैं, तो आपको एक रनटाइम त्रुटि मिलेगी।

let arrowFunc = () => {}
new arrowFunc()
This code gives the error:
arrowFunc is not a constructor

  1. जावास्क्रिप्ट में कार्यों और विधियों में क्या अंतर है?

    जावास्क्रिप्ट में कार्य और विधियाँ समान हैं, लेकिन विधि एक फ़ंक्शन है, जो किसी वस्तु का गुण है। जावास्क्रिप्ट में फ़ंक्शन का एक उदाहरण निम्नलिखित है - function functionname(param1, param2){    // code } उदाहरण विधि किसी ऑब्जेक्ट से संबद्ध एक फ़ंक्शन है। जावास्क्रिप्ट में एक विधि का उदाहरण

  1. जावास्क्रिप्ट में कस्टम और बिल्ट-इन फंक्शन में क्या अंतर है?

    JavaScript में कस्टम फ़ंक्शन उपयोगकर्ता-परिभाषित फ़ंक्शन हैं। जावास्क्रिप्ट हमें अपने स्वयं के कार्यों को लिखने की अनुमति देता है। निम्नलिखित वाक्य रचना है - सिंटैक्स <script>    <!--       function functionname(parameter-list)       {     &

  1. जावास्क्रिप्ट में संक्षिप्त तीर कार्य

    संक्षिप्त तीर फ़ंक्शन सिंटैक्स इस प्रकार है - param1+param2 होता है और यदि एक ही पैरामीटर है तो इसे इस तरह भी लिखा जा सकता है - param1*2 के बाद घुंघराले ब्रेसिज़ {} नहीं हैं, तो इसका निहित प्रतिफल है। जावास्क्रिप्ट में संक्षिप्त तीर कार्यों को लागू करने के लिए कोड निम्नलिखित है - उदाहरण दस्तावेज़