Foros del Web » Programando para Internet » Javascript »

funcion?

Estas en el tema de funcion? en el foro de Javascript en Foros del Web. Código: var counter = (function() { var privateCounter = 0; function changeBy(val) { privateCounter += val; } return { increment: function() { changeBy(1); }, decrement: ...
  #1 (permalink)  
Antiguo 12/09/2014, 11:24
 
Fecha de Ingreso: septiembre-2014
Mensajes: 66
Antigüedad: 9 años, 8 meses
Puntos: 1
funcion?

Código:
var counter = (function() {
  var privateCounter = 0;
  function changeBy(val) {
    privateCounter += val;
  }
  return {
    increment: function() {
      changeBy(1);
    },
    decrement: function() {
      changeBy(-1);
    },
    value: function() {
      return privateCounter;
    }
  };   
})();

alert(counter.value()); /* Alerts 0 */
counter.increment();
counter.increment();
alert(counter.value()); /* Alerts 2 */
counter.decrement();
alert(counter.value()); /* Alerts 1 */

lo que retorna la funcion counter son 3 funciones que acceden a una variable privada, pero despues lo usa como si fuera un objeto, para usar las funciones no tendria q llamar primero ala funcion asi: counter().value() ? esta llamando la funcion value como si llamara un metodo que tenga un objeto...

y una pregunta, si yo hago esto:

Código:
var x = count();
en x se van a almacenar 3 funciones como si fuera un objeto?
y yo podria llamarlas asi:

Código:
x.value();
x.increment();
, etc?

no esta usando la funcion counter como si fuera un objeto?

y si yo hago esas operaciones y despues hago
Código Javascript:
Ver original
  1. counter()
se va a formatear la variable privada a 0 no?
  #2 (permalink)  
Antiguo 12/09/2014, 14:28
Avatar de jp91  
Fecha de Ingreso: mayo-2014
Mensajes: 94
Antigüedad: 10 años
Puntos: 11
Respuesta: funcion?

wowowow... haber lo que creaste fue un objeto y una funcion anonima que se llama asi misma,y que retorna un objeto que queda almacenado en la variable "counter" es asi como puede acceder directamente ,ah en js todo son "objetos".

si haces
Código Javascript:
Ver original
  1. var x = counter();
te dispara error pues el objeto no es una funcion, ya la funcion ha sido ejecutada no tienes que volver hacerlo.
Código Javascript:
Ver original
  1. var x= counter;
  2. console.log(x)//{icrement,decrement,blal,bla}
__________________
OOoo Como hacer ooOO
juegos con Html5.

Etiquetas: funcion, variable
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 14:27.