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

Любые указатели с благодарностью получили.

Ответы на вопрос(2)

Ваш ответ на вопрос