मैं जॉन रेसिग & भालू बिबाउल्ट द्वारा लिखित "जावास्क्रिप्ट निंजा के रहस्य" नामक एक महान पुस्तक पढ़ रहा हूं। अध्याय 3.2 में, यह एक उदाहरण देता है;जावास्क्रिप्ट में अनाम कार्यों का नाम क्यों है?
var canFly = function(){ return true; };
फिर यह कहता है;
एक अज्ञात फ़ंक्शन बनाया गया है और कैनफ़्लो नामक वैश्विक चर को असाइन किया गया है। जावास्क्रिप्ट की कार्यात्मक प्रकृति के कारण, फ़ंक्शन को इस संदर्भ के माध्यम से canFly() के रूप में बुलाया जा सकता है। इस संबंध में, यह लगभग "कार्यात्मक" नामक नामित फ़ंक्शन घोषित करने के लगभग कार्यात्मक रूप से समतुल्य है, लेकिन काफी नहीं। एक बड़ा अंतर यह है कि फ़ंक्शन का नाम संपत्ति "" है, न कि "canfly"।
लेकिन जब मैं Chrome की डेवलपर टूल पर उदाहरण निष्पादित और canFly
समारोह के name
संपत्ति का निरीक्षण करने की कोशिश है, यह मूल्य "canFly" के बजाय कोई रिक्त स्ट्रिंग देता है।
canFly.name;
// > "canFly"
क्या चर के लिए असाइन किए गए अज्ञात कार्यों के पहले के दिनों में कोई नाम नहीं है? यदि हां, तो क्या बदल गया है? या लेखकों ने गलती की?
मुझे याद नहीं है कि मैंने इसे कहाँ पढ़ा है, लेकिन मुझे याद है कि नोड/वी 8 के नए संस्करणों में भी एक चर को आवंटित किए जाने पर अज्ञात फ़ंक्शंस वेरिएबल नाम प्राप्त करेंगे। जब मुझे कोई लिंक मिल जाए तो उत्तर पोस्ट करेगा। – Aron
[* अनुमानित फ़ंक्शन नाम *: चर और विधियां किसी अज्ञात फ़ंक्शन के नाम को इसकी वाक्य रचनात्मक स्थिति (ईसीएमएस्क्रिप्ट 2015 में नया) से अनुमानित कर सकती हैं] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/संदर्भ/Global_Objects/फंक्शन/नाम # Inferred_function_names) –
वहां हम जाते हैं। धन्यवाद @ एलेक्सके। – Aron