Код такий:
<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 не потрібні крапки з комою, тому я здогадуюсь, що існують якісь дивні правила асоціативності застосування функцій, яких я не до кінця розумію. Чому я отримую цю помилку?