下面的代码片段是一个测试,看看当一个函数和一个变量在同一范围内共享相同的名称时会发生什么。在 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>