सभी को नमस्कार! आज मैं प्रोग्रामिंग (प्रथम श्रेणी के कार्यों) में एक बहुत प्रसिद्ध अवधारणा पर चर्चा करने जा रहा हूँ। इस विषय पर पहले से ही बहुत सारे संसाधन हैं, लेकिन अभी भी इस लेख से कुछ नया लेना है, और मैंने बेहतर समझ के लिए चीजों को सरल बनाने के लिए समय लिया है।
विकिपीडिया के अनुसार, एक प्रोग्रामिंग भाषा को प्रथम श्रेणी के कार्यों के लिए कहा जाता है यदि यह प्रथम श्रेणी के नागरिकों के रूप में कार्य करता है।
इसका मतलब यह है कि भाषा अन्य कार्यों के तर्कों के रूप में गुजरने वाले कार्यों का समर्थन करती है, उन्हें विभिन्न कार्यों से मूल्यों के रूप में लौटाती है, उन्हें चर के लिए निर्दिष्ट करती है, या उन्हें डेटा संरचनाओं में संग्रहीत करती है।
जावास्क्रिप्ट में, चीजें इस तरह से काम करती हैं क्योंकि एक फ़ंक्शन सिर्फ एक अन्य प्रकार की वस्तु है। यदि आप इस अवधारणा के लिए नए हैं, तो आपको यह बहुत अजीब लगेगा, खासकर यदि आप एक अलग प्रोग्रामिंग पृष्ठभूमि से आ रहे हैं, लेकिन अभी के लिए, अपने दिमाग को इसके चारों ओर लपेट लें। चूँकि वस्तुएँ मूल्य हैं, कार्य भी हैं, और जावास्क्रिप्ट उन्हें एक मानता है। यह अधिक लचीला कोड लिखने का एक नया तरीका खोलता है क्योंकि हम फ़ंक्शन को एक चर में संग्रहीत कर सकते हैं या गुण जोड़ सकते हैं।
चीजों को आसान बनाने के लिए मैंने मुख्य बिंदुओं को बुलेट सूची में तोड़ दिया है। प्रथम श्रेणी के कार्यों को बेहतर ढंग से समझने के लिए, इसे स्पष्ट करने के लिए यहां कुछ बिंदु दिए गए हैं।
प्रथम श्रेणी के फ़ंक्शन के साथ एक चीज़ संभव हो गई है, एक फ़ंक्शन को एक तर्क के रूप में पारित करना; हम कोड की इस शैली को बहुत सारे जावास्क्रिप्ट कोड में देख सकते हैं। उदाहरण के लिए addEventListener विधि, जो तर्क के रूप में जावास्क्रिप्ट कॉलबैक फ़ंक्शन प्राप्त करती है
button.addEventListener('click', function(){ console.log('hellloooo') })
पिछले कोड स्निपेट में, हम देखते हैं कि addEventListener को दो तर्क मिलते हैं, जहां दूसरा फ़ंक्शन कॉलबैक फ़ंक्शन होता है, और बटन को क्लिक करने के बाद कॉल किया जाएगा।
हम Javascript में किसी अन्य फ़ंक्शन से फ़ंक्शन वापस कर सकते हैं; जावास्क्रिप्ट में कई वस्तुओं में विधियाँ हैं, जैसे, जावास्क्रिप्ट में ऐरे फ़ंक्शंस। साथ ही, हमारे पास फ़ंक्शन की विधि है, उदाहरण के लिए, call()
, bind()
, apply()
जावास्क्रिप्ट विधियों को जावास्क्रिप्ट फ़ंक्शंस पर कॉल किया जा सकता है।
function count(){ Let counter = 0; return function(){ counter++ } }
काउंट फ़ंक्शन ने एक और फ़ंक्शन लौटाया जहां हमने काउंटर को अपडेट किया।
जावास्क्रिप्ट में, हम एक फ़ंक्शन को एक चर या यहां तक कि संपत्ति में संग्रहीत कर सकते हैं, जैसा कि आप जावास्क्रिप्ट मानों को औसत करने के लिए करेंगे।
Const multiply = (a,b) => a * b
उपरोक्त जावास्क्रिप्ट एरो फ़ंक्शन को गुणा चर में संग्रहीत किया जाता है, जिसे कहा जा सकता है
गुणा (3,5) इस तरह।
प्रथम श्रेणी के कार्यों का प्राथमिक महत्व यह है कि वे हमारे लिए उच्च-क्रम के कार्यों को लिखना संभव बनाते हैं।
यह या तो एक फ़ंक्शन है जो तर्क के रूप में एक और फ़ंक्शन प्राप्त करता है या एक फ़ंक्शन जो एक नया फ़ंक्शन देता है। यह प्रथम श्रेणी के कार्य के कारण ही संभव है।
button.addEventListener('click', function(){ console.log('hellloooo') })
यहाँ addEventListener()
एक उच्च-क्रम फ़ंक्शन का एक उदाहरण है क्योंकि यह तर्क के रूप में एक और फ़ंक्शन प्राप्त करता है। यह अक्सर जावास्क्रिप्ट कॉलबैक फ़ंक्शन को संदर्भित करता है क्योंकि इसे HOF के चलने के बाद बुलाया गया है। उच्च-क्रम और प्रथम श्रेणी के कार्यों के बीच मुख्य अंतर यह है कि प्रथम श्रेणी का कार्य एक विशेषता है जो एक प्रोग्रामिंग भाषा में है या नहीं है, इसका सीधा सा मतलब है कि सभी कार्य मूल्य हैं।
अंत में, यह जानना आवश्यक है कि व्यवहार में कोई प्रथम श्रेणी का कार्य नहीं है; यह सिर्फ एक अवधारणा है। हालाँकि, व्यवहार में उच्च-क्रम के कार्य संभव हैं क्योंकि भाषा प्रथम श्रेणी के कार्यों का समर्थन करती है।