Я пытаюсь разобраться в раскрывающемся шаблоне модуля в javascript. Я озадачен двумя вещами о следующем фрагменте кода.
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);
});
-
Три значения, записанные на консоль здесь: 100, 150, 100. Это говорит мне, что когда я называю "addPoints" со значением, переменная totalPoints не обновляется. Если я изучу значение totalPoints в функции addPoints, он будет увеличен правильно. Что происходит?
-
Если я использую консоль для просмотра window.addPoints или window.getPoints, я вижу это, потому что я не использовал "var" перед объявлениями функций, которые они добавили в глобальную область. Не так ли? Большинство примеров, на которые я смотрю, похоже, делают это.
Любые указатели с благодарностью получили.