コードは次のとおりです。
<body>
<a href="javascript:;" id="test">hello</a>
</body>
<script type="text/javascript">
document.getElementById("test").addEventListener("click", function () {
test()
}, false)
function test() {
var postTypes = new Array('hello', 'there')
(function() { alert('hello there') })()
}
</script>
これはスローされます:
「キャッチされていないTypeError:オブジェクトは関数ではありません」
匿名関数呼び出し/呼び出しを別の括弧のセットでラップすると、アラートが実行されますが、それでもエラーが発生します。「var postTypes」の定義の後にセミコロンを付けると、完全にうまくいきます。
私はJavaScriptがセミコロンを必要としないと信じさせられたので、私は完全に理解していない関数適用のいくつかの奇妙な連想ルールがあると推測しています。このエラーが発生するのはなぜですか?