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

जावास्क्रिप्ट में रेगुलर फंक्शन्स बनाम एरो फंक्शन्स

रेगुलर फंक्शन्स बनाम एरो फंक्शन्स

एक एरो फंक्शन कोड को संक्षिप्त रूप से लिखने के लिए उपयोग किया जाता है। दोनों फंक्शन्स रेगुलर और एरो समान तरीके से काम करते हैं लेकिन उनके बीच कुछ अंतर हैं। आइए उन अंतरों को संक्षेप में समझते हैं।

एरो फंक्शन का सिंटैक्स

let x = (params) => { // code };

रेगुलर फंक्शन का सिंटैक्स

let x = function functionname(params){ // code };

"this" कीवर्ड का उपयोग

एरो फंक्शन्स में "this" कीवर्ड का उपयोग करने में असमर्थ हैं जबकि रेगुलर फंक्शन्स में इसे बिना किसी परेशानी के उपयोग किया जा सकता है।

उदाहरण

निम्नलिखित उदाहरण में, दोनों रेगुलर (rectangle) और एरो (square) फंक्शन्स का उपयोग ऑब्जेक्ट "num" के अंदर किया गया है, जिसमें len (लंबाई) और bre (चौड़ाई) प्रॉपर्टीज हैं। हमारा उद्देश्य स्क्वायर का क्षेत्रफल (len*len) एरो फंक्शन का उपयोग करके और रेक्टेंगल का क्षेत्रफल (len*bre) रेगुलर फंक्शन का उपयोग करके खोजना है। लेकिन चूंकि "this" कीवर्ड एरो फंक्शन में काम नहीं करता, स्क्वायर का क्षेत्रफल मान "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

'new' कीवर्ड का उपयोग

एरो फंक्शन्स "कंस्ट्रक्टिबल" नहीं हैं लेकिन "कॉलेबल" हैं इसलिए कीवर्ड "new" यहां काम नहीं करता जबकि रेगुलर फंक्शन्स दोनों "कॉलेबल" और "कंस्ट्रक्टिबल" हैं इसलिए "new" कीवर्ड यहां काम करता है।

उदाहरण

निम्नलिखित उदाहरण में, "new" कीवर्ड का उपयोग करके कुछ आर्गुमेंट्स दोनों रेगुलर और एरो फंक्शन को पास किए गए हैं। लेकिन चूंकि एरो फंक्शन "कंस्ट्रक्टिबल" नहीं है, हमें एक त्रुटि मिलेगी जबकि हमें रेगुलर फंक्शन्स के लिए वैध आउटपुट मिलेगा।

<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>
  1. JavaScript में संक्षिप्त एरो फंक्शन्स (Concise Arrow Functions) JavaScript में संक्षिप्त एरो फंक्शन्स (Concise Arrow Functions)

    संक्षिप्त एरो फंक्शन सिंटैक्स निम्नलिखिक है:(param1, param2) =>param1+param2इसमें function कीवर्ड और फंक्शन बॉडी नहीं होती। पैरामीटर्स और फंक्शन बॉडी के बीच केवल => होता है और यदि सिंगल पैरामीटर है तो इसे इस तरह भी लिखा जा सकता है:param1=>param1*2यदि => के बाद कर्ली ब्रेसेस {} नहीं हैं त

  1. JavaScript में फैट एरो फंक्शन्स (Fat Arrow Functions) JavaScript में फैट एरो फंक्शन्स (Fat Arrow Functions)

    फैट एरो फंक्शन सिंटैक्स निम्नलिखिक दिखता है:(param1,param2,..)=>{ }इसमें function कीवर्ड नहीं होता और केवल पैरामीटर्स और फंक्शन बॉडी के बीच => होता है।JavaScript में फैट एरो फंक्शन्स इम्प्लीमेंट करने का कोड:उदाहरण<!DOCTYPE html> <html lang="hi"> <head> <meta char

  1. जावास्क्रिप्ट में फर्स्ट-क्लास फ़ंक्शन जावास्क्रिप्ट में फर्स्ट-क्लास फ़ंक्शन

    जावास्क्रिप्ट फ़ंक्शन्स को ऑब्जेक्ट्स की तरह ट्रीट करता है और हमें फ़ंक्शन्स को दूसरे फ़ंक्शन में पैरामीटर के रूप में पास करने और यहां तक कि अन्य फ़ंक्शन्स से फ़ंक्शन्स लौटाने की अनुमति देता है। जावास्क्रिप्ट में फ़ंक्शन्स फर्स्ट-क्लास फ़ंक्शन्स होते हैं, अर्थात हम उन्हें वेरिएबल्स, ऑब्जेक्ट्स और ऐ