¿Alguien podría ayudarme con una pregunta de javascript?
Tengo una página HTML que carga una función javascript a través de una llamada Ajax, la función se declara dentro de una etiqueta de secuencia de comandos como esta:
<script> function greet(){ return 'Hello Word(1)'; } </script>A través de la llamada Ajax busco un fragmento de código HTML en el servidor, y este HTML a su vez contiene esta etiqueta con la función en cuestión. Bueno, si hago 2 llamadas Ajax para obtener la misma pieza de código HTML en mi página, significa que mi función saludar() se declarará dos veces, pero la última declaración anulará la primera.
Sin embargo, hay un detalle, en cada llamada Ajax, la función que se declara en la etiqueta dentro del fragmento de código HTML viene con un retorno diferente, por ejemplo: en la primera llamada Ajax, se declara el retorno de la función saludo() para ser la cadena 'Hellow Word (1)', en la segunda llamada Ajax, la misma función viene con el retorno declarado como 'Hellow Word (2)', en la tercera llamada ajax la misma función viene con el retorno 'Hellow Word (3)', y así sucesivamente.
El problema ocurre cuando ejecuto la función después de que se carga en la página, en el primer Ajax, llamo a la función saludo () y el retorno es exactamente lo que esperaba ('Hellow Word (1)'), pero al llamar al después del segundo Ajax, el retorno sigue siendo 'Hellow Word(1)', es decir, es como si la función no se hubiera actualizado. Y lo más extraño es que si inspecciono el HTML usando DevTools de Chrome, puedo ver que la función se declara con el retorno 'Hellow Word (2)', pero al ejecutarlo, el retorno proviene de la primera función. ¿Alguien podría explicarme por qué sucede esto? ¿Me estoy perdiendo algún comportamiento predeterminado del idioma?