Buenas gente del foro. llevo tan solo 2 meses aprendiendo js y como es normal me
encuentro con algun que otro problema. La cuestion que tengo ahora
es esta IIFE(funcion autoinvocada) enlazada a la variable module que retorna un
objeto con diversos metodos.
en la parte privada tengo un constructor Counter que crea objetos con las
propiedades value y step.
posteriormente instancio dos objetos a partir de este constructor.
El problema surge en los metodos retrieve y add donde hay que especificar
el objeto como parametro.
cuando lo hago:
module.retrieve(score);
me indica que el objeto score no existe cuando en realidad si que existe en la
zona privada. de hecho he creado un metodo llamado r que retorna el objeto
score y me lo devuelve perfectamente.
alguien sabe que estoy haciendo mal? gracias por adelandado.
Código Javascript
:
Ver originalvar module = (function () {
function Counter(step){
this.value = 0;
this.step = step || 1;
}
Counter.prototype.b = function () {
var that = this;
return {
set: function() { that.value += that.step; },
get: function() { return that.value; },
restart: function () {that.value = 0; }
};
};
var score = new Counter(5);
var cErrors = new Counter();
var list = [score,cErrors];
return {
retrieve : function (obj) {
return obj.value;
},
add : function (object) {
object.b().set();
},
restart : function (){
list.forEach(function (e) {
e.b().get();
});
},
r : function () {
return score;
}
};
})();