Patrón de módulo revelador de JavaScript, propiedades públicas
Estoy tratando de entender el patrón del módulo revelador en javascript. Me intrigan dos cosas sobre el siguiente fragmento de código.
var Child = function () {
var totalPoints = 100;
addPoints = function (points) {
totalPoints += points;
return totalPoints;
};
getPoints = function () {
return totalPoints;
};
return {
points: totalPoints,
addPoints: addPoints
};
};
$(function () {
var george = Child();
console.log(george.points);
console.log(george.addPoints(50));
console.log(george.points);
});
Los tres valores escritos en la consola aquí son 100, 150, 100. Eso me dice que cuando llamo "addPoints" con un valor, la variable totalPoints no se actualiza. Si examino el valor de totalPointsdentr los addPoints funcionantien se incrementó correctamente. @¿Que esta pasando
Si uso la consola para examinar window.addPoints o window.getPoints, puedo ver eso porque no he usado "var" delante de las declaraciones de funciones que se han agregado al ámbito global. @ ¿No está mal? La mayoría de los ejemplos que estoy viendo parecen hacer esto.
Cualquier puntero recibido con gratitud.