var f=function foo()
{
console.log("hello");
};
f();
foo();
इस के रूप में एक त्रुटि पैदा करता है: "अपवाद: ReferenceError: foo परिभाषित नहीं है"किसी अन्य var को असाइन किए जाने के बाद जावास्क्रिप्ट फ़ंक्शन को अपने मूल नाम से एक्सेस करना क्यों संभव नहीं है?
लेकिन "foo" परिभाषित किया गया है। ऐसा क्यों होता है? मुझे पता है कि यह एक फ़ंक्शन अभिव्यक्ति है और "f()" का उपयोग इस फ़ंक्शन तक पहुंचने के लिए किया जाता है। लेकिन यह एक अज्ञात कार्य नहीं है, मेरे पास इस फ़ंक्शन के लिए एक नाम है। मैं अपने नाम का उपयोग कर फ़ंक्शन तक पहुंच नहीं पा रहा हूं?
देखें https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/function#Named_function_expression) फ़ंक्शन अभिव्यक्ति के मामले में, यदि आप फ़ंक्शन का नाम देते हैं, तो नाम केवल फ़ंक्शन बॉडी में उपलब्ध है, न कि बाहर। – abhishekkannojia
जेएस में सभी फ़ंक्शन वेरिएबल्स हैं। लेकिन आपके मामले में foo() को एफ को असाइन किया गया है। foo() को संदर्भ त्रुटि मिलेगी क्योंकि इसे परिभाषित नहीं किया गया है। –
foo परिभाषित नहीं किया गया है। एफ परिभाषित किया गया है। –