Шаблон раскрывающего модуля Javascript, общедоступные свойства
Я пытаюсь разобраться с шаблоном разоблачающего модуля в 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» перед объявлениями функций, которые были добавлены в глобальную область.Разве это не так? Большинство примеров, на которые я смотрю, похоже, делают это.
Любые указатели с благодарностью получили.