Muy bien, si no estoy tan perdido, (ojo, que llevo varios meses sin tocar
Javascript) el problema (ya que no especificaste qué tipo de problema te daba, solamente dijiste que la función no se volvía a llamar) se da porque estás
sobreescribiendo el valor de la variable en la cual está tu función
impacto()
El error
Recordar que cuando se crea una función al estilo :
Código Javascript
:
Ver originalfunction soyUnaFuncion(){
//algo de código
}
Se está creando un "
función global". Lo cual significa que
this contendrá una referencia al objeto window.
Pero lo divertido no es eso, si no que, aparte de eso, Javascript crea una variable global con el mismo nombre que la función. O sea, terminas teniendo una variable
impacto la cual hace referencia a la función
impacto()
Pero hasta ahí todo bien, no pasa nada. ¿Entonces cuál es el problema?
Esto
En una parte de tu código dentro de la función
impacto() estás creando una variable llamada
impacto.
Pero vamos, ¿que acaso eso no sería una variable local? No realmente
Cuando declaras una variable en Javascript sin
var, éste asume que estás creando (o en este caso, sobreescribiendo) una variable global. Caso contrario hubiera sido si hubieras declarado la variable usando
var
Código Javascript
:
Ver originalvar impacto = ataque - defensa;
De esa manera no estarías ocasionando ningún problema ni sobreescribiendo nada, ya que crearías una
variable local ¿La solución? - Usa var antes de la variable impacto dentro de tu función impacto()
- Coloca otro nombre a tu función
Espero haber ayudado