निम्न कोड-स्निपेट यह देखने के लिए एक परीक्षण है कि क्या होता है जब कोई फ़ंक्शन और एक चर एक ही दायरे में समान नाम साझा करता है। क्रोम में ऐसा लगता है कि परिवर्तनीय परिभाषा संदर्भ में प्राथमिकता है।एक ही नाम के साथ फंक्शन और वैरिएबल
- क्या नामित फ़ंक्शन निष्पादित किया जा सकता है, या यह परिवर्तनीय घोषणा द्वारा पूरी तरह से अस्पष्ट है?
- क्या यह जावास्क्रिप्ट में मानक व्यवहार है कि चर समान नाम वाले कार्यों पर प्राथमिकता लेते हैं?
दो भाग प्रश्न के लिए खेद है, लेकिन यह दो अलग-अलग प्रश्न पूछने के लिए अपमानजनक लग रहा था।
कोड:
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
var overlapping = function() { return 'this is a var holding an anonymous function' };
function overlapping()
{
return 'this is a function definition';
}
output(overlapping, 'overlapping');
output(overlapping(), 'overlapping()');
function output(expression, description)
{
document.writeln('<li>' + (description ? ('<i>' + description + '</i>: ') : '') + expression + '</li>');
}
</script>
</body>
</html>
मेरा अनुमान है कि है कि जावास्क्रिप्ट शीर्ष करने के लिए कार्य करता है फहराते हैं, चर परिभाषा करने के बाद समारोह परिभाषा होते हैं:
यह इस विषय के बारे में कुछ अच्छी पढ़ा है। इसलिए अंतिम परिभाषा - चर - उपयोग किया जाता है। –