जावास्क्रिप्ट में fn () और नए fn () के बीच मौलिक अंतर


12

जावास्क्रिप्ट में नए कीवर्ड के साथ और बिना किसी फ़ंक्शन के सभी पहलुओं में क्या अंतर है? मेरा मतलब है कि सभी चीजें किसके बीच भिन्न हैं?

testFn() बनाम new testFn()

जवाबों:


13

newएक नए (खाली) वस्तु और सेट बनाता है thisइसे करने के लिए, तो समारोह है, जो वस्तु के लिए निर्माता के रूप में कार्य कॉल (जोड़ तोड़ द्वारा thisकुछ )। newकीवर्ड के बिना एक ही फ़ंक्शन को कॉल करने से यह जो भी thisवर्तमान में है उस पर कार्य करने देगा ।


क्या इसमें और कुछ है?
akp

@akp नहीं यह वास्तव में इतना आसान है। सिवाय इसके कि जो उल्लेख नहीं किया गया है वह यह है कि यदि फ़ंक्शन स्पष्ट रूप से एक संदर्भ प्रकार लौटाता है, तो वह वापस आ जाता है newऔर बनाई गई वस्तु बर्बाद हो जाती है।
एसालेजिजा

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

तुम सही हो, मुझे वह याद आ गया।
user281377

1

ये वेरिएंट वाक्यात्मक रूप से अलग हैं: "नए" वेरिएंट से लगता है कि फ़ंक्शन एक कंस्ट्रक्टर है। "नया" के बिना संस्करण, यह बताता है कि यह एक निर्माता नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.