Normalmente suelo crear funciones que utilizo como clases en Javascript, por ejemplo una «clase» contador:
function Contador(init){ this.num = (init!== undefined)?init:1; this.incrementa = function(){ this.num++; } } // y la usaríamos de la siguiente forma var obj = new Contador(5); obj.incrementa(); console.log(obj.num);
Como se ve, se puede acceder directamente a las propiedades del objeto y no siempre querremos esto. Para eso podemos usar una función factoría que básicamente funciona igual pero nos impide acceder a las propiedades (para acceder a estas tendremos que usar algún método).
function contador(init){ var _num = (init!== undefined)?init:1; return { incrementa:function(){ _num++; }, valor:function(){ return _num; } } } // y la usaríamos de la siguiente forma var obj = contador(10); obj.incrementa(); console.log(obj.valor());
0 Comentarios.