Tema: funcion?
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/09/2014, 11:24
icm9
 
Fecha de Ingreso: septiembre-2014
Mensajes: 66
Antigüedad: 10 años, 6 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?