Следующий фрагмент кода - это тест, чтобы увидеть, что происходит, когда функция и переменная имеют одно и то же имя в той же области. В Chrome кажется, что определение переменной имеет приоритет в ссылке.
- Может ли именованная функция выполняться или полностью закрыта объявлением переменной?
- Является ли это стандартным поведением в Javascript, что переменные имеют приоритет над функциями с тем же именем?
Извините за вопрос из двух частей, но казалось, расточительно задавать два отдельных вопроса.
код:
<!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>