Foros del Web » Programando para Internet » Javascript »

¿Punteros en JavaScript?

Estas en el tema de ¿Punteros en JavaScript? en el foro de Javascript en Foros del Web. Me preguntaba si existe la posibilidad de utilizar "algo" que haga las veces de lo que en C/C++ sería un puntero, pero en JavaScript. Para ...
  #1 (permalink)  
Antiguo 31/08/2010, 15:03
 
Fecha de Ingreso: agosto-2010
Mensajes: 56
Antigüedad: 14 años, 3 meses
Puntos: 0
Pregunta ¿Punteros en JavaScript?

Me preguntaba si existe la posibilidad de utilizar "algo" que haga las veces de lo que en C/C++ sería un puntero, pero en JavaScript. Para más claridad explico mi caso: quiero hacer una cuenta atrás que se actualice cada segundo utilizando la función setInterval(). Tengo guardado en una variable el número de segundos desde el cual se va a empezar a descontar. Mi idea era la siguiente:

Código HTML:
Ver original
  1. <span id="restante"></span>
  2. <script type="text/javascript">
  3.    var segundos=10;
  4.    setInterval("descontar(segundos);", "1000");
  5.  
  6.    function descontar(segundos)
  7.    {
  8.       document.getElementById("restante").innerHTML=(segundos--);
  9.    }

Y llamar a la función descontar() de forma que la variable "segundos" quede modificada permanentemente.

¿Qué sería lo equivalente a lo que en C/C++ se haría pasando como argumento "&segundos" para recibirlo en descontar() como "*segundos"?

Es algo liosa la pregunta pero gracias si alguien sabe cómo conseguirlo
  #2 (permalink)  
Antiguo 31/08/2010, 15:10
Avatar de tredio  
Fecha de Ingreso: noviembre-2008
Ubicación: Carabobo
Mensajes: 466
Antigüedad: 16 años, 1 mes
Puntos: 66
Respuesta: ¿Punteros en JavaScript?

haz lo mismo que estas haciendo, solo con estos cambios

Código Javascript:
Ver original
  1. <span id="restante"></span>
  2. <script type="text/javascript">
  3.    var segundos=10;
  4.    setInterval("descontar();", "1000");
  5.  
  6.    function descontar()
  7.    {
  8.       document.getElementById("restante").innerHTML=(segundos--);
  9.    }
  10. </script>

asi la variable segundos esta como variable global, al modificarla dentro de la funcion la modificas directamente.
  #3 (permalink)  
Antiguo 31/08/2010, 15:31
 
Fecha de Ingreso: agosto-2010
Mensajes: 56
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: ¿Punteros en JavaScript?

Ah ok, pensaba que al no estar dentro del ámbito de la función no se podía acceder a ella desde ahí, no sabía eso de que tenían ámbito global, muchas gracias ^^
  #4 (permalink)  
Antiguo 31/08/2010, 15:36
Avatar de tredio  
Fecha de Ingreso: noviembre-2008
Ubicación: Carabobo
Mensajes: 466
Antigüedad: 16 años, 1 mes
Puntos: 66
Respuesta: ¿Punteros en JavaScript?

si es asi, y si no la declaras, tambien tiene un ambito global, es decir, si solo colocas segundos=10;, funcionaria. aunque es recomendable declarar las variables, ya que como te dije al no declararlas se convierten en variables globales y esto aveces nos puede dañar algunas cosas, me ha pasado.
  #5 (permalink)  
Antiguo 31/08/2010, 15:41
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 7 meses
Puntos: 1485
Respuesta: ¿Punteros en JavaScript?

adicional, en javascript no existe manejo de punteros como en otros lenguajes. javascript mismo maneja como pasar los valores segun su tipo. si son datos tipo primitivos los pasa como una copia pero si son objetos los pasa como referencia. datos tipo primitivos son los integer, string, y boolean. los tipos objetos son array, funciones y objetos.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: funcion, puntero, referencia, argumentos, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:42.