次のコードスニペットは、関数と変数が同じスコープ内で同じ名前を共有する場合の動作を確認するためのテストです。 Chromeでは変数定義の優先順位が参照されているようです。同じ名前の関数と変数
- 名前付き関数を実行するか、変数宣言によって完全に隠蔽できますか?
- Javascriptの標準的な動作は、変数が同じ名前の関数よりも優先されますか?
2つの部分の質問は申し訳ありませんが、2つの質問をするのは無駄に思えました。
コード: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>
:
これはこのトピックに関するいくつかの良い読み物です。したがって、最後の定義 - 変数 - は使用されたものです。 –