Javascript revelando o padrão do módulo, propriedades públicas
Estou tentando entender o padrão do módulo revelador em javascript. Estou perplexo com duas coisas sobre o seguinte snippet de códig
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);
});
Os três valores gravados no console aqui são 100, 150, 100. Isso me diz que quando eu chamo "addPoints" com um valor, a variável totalPoints não é atualizada. Se eu examinar o valor de totalPointsdentr a função addPoints éte foi incrementado corretamente.O que está acontecendo
Se eu usar o console para examinar window.addPoints ou window.getPoints, posso ver isso porque não usei "var" na frente das declarações de função que foram adicionadas ao escopo global. Isso não está errado? A maioria dos exemplos que estou vendo parece fazer iss
ualquer ponteiro recebido com gratidã