Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/01/2015, 19:38
nestor_chavez08
 
Fecha de Ingreso: enero-2015
Mensajes: 1
Antigüedad: 9 años, 3 meses
Puntos: 1
Respuesta: Problema al llamar función

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 original
  1. function soyUnaFuncion(){
  2.     //algo de código
  3. }

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 original
  1. var 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?
  1. Usa var antes de la variable impacto dentro de tu función impacto()
  2. Coloca otro nombre a tu función


Espero haber ayudado