समारोह अभिव्यक्ति:
//someFunction(); //wouldn't work when uncommented
var someFunction = function(){ alert('yay'); };
इस मामले में मजेदार अभिव्यक्ति अनाम है, लेकिन संदर्भ के लिए एक संस्करण को सौंपा गया है। यह निम्नलिखित तरीकों से एक लेबल फ़ंक्शन स्टेटमेंट से अलग है:
- इसे फहराया नहीं जा सकता (इसे परिभाषित करने से पहले कहा जाता है)
new someFunction().constructor.name === 'someFunction';//false
उदाहरणों को constructor.name के लिए var नाम नहीं मिलता है क्योंकि फ़ंक्शन का एक संदर्भ var को असाइन किया जाता है लेकिन var, फ़ंक्शन का नहीं, var नाम से बंधा होता है
एक लेबल फ़ंक्शन स्टेटमेंट में:
//someFunction(); //works when uncommented
function someFunction(){ alert('yay'); }
- उत्थापन कार्य
new someFunction().constructor.name === 'someFunction'; //true
नाम सीधे फ़ंक्शन से बंधा हुआ है।
आम तौर पर बोलना वास्तव में कोई बहुत बड़ा कारण नहीं है कि जब तक चीजें इधर-उधर न हो जाएं या आप एक पंक्ति में एक विधि को परिभाषित / परिभाषित नहीं कर रहे हैं, जब तक आप विफल न हों, तब तक var को अभिव्यक्ति करने का कोई बड़ा कारण नहीं है। मैं वास्तव में नीचे की तरफ आंतरिक फंक और विधि परिभाषाओं के साथ वस्तुओं को व्यवस्थित करने के लिए लहराता हुआ उपयोगी हूं, ताकि मैं वस्तु के वास्तविक व्यवहार को प्राप्त कर सकूं और एक पंक्ति की सार्वजनिक विधि परिभाषाएं (केवल this.
एक ही नाम के साथ फंक को नियत करके ) सभी में एक कर सकूं संदर्भ में आसानी के लिए हाजिर। आपको हमेशा बिल्डरों, आईएमओ के लिए लेबल वाले बयानों का उपयोग करने का प्रयास करना चाहिए, ताकि आप किसी व्यक्ति के 'प्रकार' को उसके निर्माता के माध्यम से पहचान सकें।