Код выглядит следующим образом:
<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>
Это вызовет:
«Uncaught TypeError: объект не является функцией»
Если я заключу вызов / вызов анонимной функции в другой набор круглых скобок, он выполнит предупреждение, но все равно выдаст мне ошибку. Если я поставлю точку с запятой после определения var postTypes, все будет в порядке.
Меня заставили поверить, что javascript не требует точки с запятой, поэтому я предполагаю, что существуют некоторые странные правила ассоциативности приложения функций, которые я не полностью понимаю. Почему я получаю эту ошибку?