Código es el siguiente:Javascript "TypeError no detectada: objeto no es una función" cuestión asociatividad
<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 generará un "TypeError no detectada: objeto no es una función". Si envuelvo la llamada/invocación de la 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", entonces estará completamente bien.
Me hicieron creer que javascript no requiere punto y coma, así que estoy adivinando que hay algunas reglas de asociación de funciones extrañas que no entiendo del todo. Espero que alguien pueda darme la respuesta a por qué estoy recibiendo este error.
Gracias.
Parece casi como si estuviera intentando crear una función anónima y una función estática y espera que se ejecute como una sola. Qué sucede si elimina la función() – brumScouse