नियमित कार्य बनाम तीर कार्य
एक तीर फ़ंक्शन कोड को संक्षिप्त रूप से लिखने के लिए उपयोग किया जाता है। दोनों कार्य नियमित और तीर एक समान तरीके से काम करते हैं लेकिन उनके बीच कुछ अंतर हैं। आइए उन अंतरों पर संक्षेप में चर्चा करें।
एरो फंक्शन का सिंटैक्स
let x = (params) => { // code };
नियमित फ़ंक्शन का सिंटैक्स
let x = function functionname(params){ // code };
"इस" कीवर्ड का उपयोग
यह तीर कार्यों में "इस" कीवर्ड का उपयोग करने में असमर्थ है जबकि नियमित कार्यों में इसका उपयोग बिना किसी गड़बड़ी के किया जा सकता है।
उदाहरण
निम्नलिखित उदाहरण में, दोनों नियमित (आयत) और तीर (वर्ग) फ़ंक्शन का उपयोग ऑब्जेक्ट के अंदर किया गया था "num ", जिसमें लेन (लंबाई) और ब्रे (चौड़ाई) गुण होते हैं। हमारा उद्देश्य वर्ग का क्षेत्रफल ज्ञात करना है (लेन*लेन) तीर फ़ंक्शन का उपयोग कर रहा है और आयत का क्षेत्रफल (len*bre) नियमित . का उपयोग करके समारोह। लेकिन चूंकि "यह " कीवर्ड एरो फ़ंक्शन में काम नहीं करता है वर्ग . के क्षेत्रफल का मान "NaN . के रूप में लौटाया जाता है " नियमित . का उपयोग करते समय फ़ंक्शन हमें आयताकार . का एक सटीक क्षेत्र मिला जैसा कि आउटपुट में दिखाया गया है।
<html> <body> <script> var num = { len: 12, bre: 13, square:() => { document.write(this.len * this.len); }, rectangle(){ document.write(this.len * this.bre); } }; num.square(); document.write("</br>"); num.rectangle(); </script> </body> </html>
आउटपुट
NaN 156
'नए' कीवर्ड का उपयोग
तीर कार्य करता है "रचनात्मक . नहीं हैं " लेकिन "कॉल करने योग्य " तो कीवर्ड "नया " यहां काम नहीं करता जबकि नियमित कार्य दोनों "कॉल करने योग्य . हैं " और "रचनात्मक " इसलिए "नया "कीवर्ड यहां काम करता है।
उदाहरण
निम्न उदाहरण में, "नया . का उपयोग करना " कीवर्ड कुछ तर्क नियमित . दोनों को पास कर दिए गए हैं और तीर समारोह। लेकिन तीर फ़ंक्शन . के बाद से "रचनात्मक . नहीं है "हमें एक त्रुटि मिलेगी, जबकि हमें नियमित कार्यों के लिए एक वैध आउटपुट मिलेगा ।
<html> <body> <script> var word = function(){ document.write(JSON.stringify(arguments)); /// executes '{"0":"Tutorix","1":"Tutorialspoint"}' as output }; new word("Tutorix","Tutorialspoint"); var newword = ()=> { document.write(JSON.stringify(arguments)); //executes 'newword is not a constructor' as output }; new newword("Tutorix","Tutorialspoint"); </script> </body> </html>