Шаблон модуля JavaScript: Как сделать частный методы получают доступ к области видимости модуля?

Каким образом частные функции получают доступ к закрытым свойствам модуля при реализации шаблона модуля? Я не видел примеров, где бы это делали разработчики. Есть ли причина не делать этого?

var module = (function(){
    // private property
    var number = 0;

    // private method
    _privateIncrement = function(){
        // how do I access private properties here?
        number++;
    };

    // public api
    return {
        // OK
        getNumber: function(){
             return number;   
        },
        // OK
        incrNumber: function(){
             number++;  
        },
        // Doesn't work. _privateIncrement doesn't have
        // access to the module's scope.
        privateIncrNumber: function(){
            _privateIncrement();
        }
    };
})();
13
задан Thomas 20 December 2011 в 18:05
поделиться