Friday, 15 February 2013

javascript - How do you check the difference between an ECMAScript 6 class and function? -


ईसीएमएस्क्रिप्ट 6 में क्लास का typeof विनिर्देश के अनुसार, 'function '

हालांकि, विनिर्देश के अनुसार आपको सामान्य फ़ंक्शन कॉल के रूप में वर्ग वाक्यविन्यास के माध्यम से बनाए गए ऑब्जेक्ट को कॉल करने की अनुमति नहीं है। दूसरे शब्दों में, आपको नया कीवर्ड का उपयोग करना चाहिए अन्यथा कोई TypeError फेंक दिया जाता है।

TypeError: क्लासेस को फ़ंक्शन से बुलाया नहीं जा सकता

तो कोशिश कैच का उपयोग किए बिना, जो बहुत बदसूरत होगा और प्रदर्शन को नष्ट करेगा, आप यह कैसे देख सकते हैं कि कोई फ़ंक्शन class वाक्यविन्यास या function वाक्यविन्यास?

मुझे लगता है कि फ़ंक्शन ES6 वर्ग है या नहीं, यह देखने के लिए सबसे आसान तरीका परिणाम की जांच करना है विधि का के अनुसार:

स्ट्रिंग प्रतिनिधित्व में एक FunctionDeclaration FunctionExpression, GeneratorDeclaration, GeneratorExpression, ClassDeclaration, ClassExpression, ArrowFunction, MethodDefinition, या GeneratorMethod के सिंटैक्स होना चाहिए ऑब्जेक्ट की वास्तविक विशेषताओं के आधार पर

तो चेक फ़ंक्शन बहुत सरल दिखता है:

  फ़ंक्शन isClass (func) {return typeof func === 'फ़ंक्शन' & amp; /^class\s/.test(Function.prototype.toString.call(func)); }  

No comments:

Post a Comment