El código es el siguiente:
<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>
Esto arrojará un:
"Error de tipo no detectado: el objeto no es una función"
Si envuelvo la llamada / invocación de función anónima en otro conjunto de paréntesis, ejecutará la alerta, pero aún así me dará un error. Si pongo un punto y coma después de la definición de "var postTypes", estará completamente bien.
Me hicieron creer que javascript no requiere punto y coma, así que supongo que hay algunas reglas de asociatividad extrañas de aplicación de funciones que no entiendo completamente. ¿Por qué recibo este error?