Javascript 理解模块模式

Javascript 理解模块模式,javascript,jquery,Javascript,Jquery,嘿,伙计们,我只是想理解揭示模块模式,我看到了以下关于揭示模块模式的简单描述: var myRevealingModule = (function () { var privateCounter = 0; function privateFunction() { privateCounter++; } function publicFunction() { publicIncre

嘿,伙计们,我只是想理解揭示模块模式,我看到了以下关于揭示模块模式的简单描述:

var myRevealingModule = (function () {

        var privateCounter = 0;

        function privateFunction() {
            privateCounter++;
        }

        function publicFunction() {
            publicIncrement();
        }

        function publicIncrement() {
            privateFunction();
        }

        function publicGetCount(){
          return privateCounter;
        }

        // Reveal public pointers to
        // private functions and properties

       return {
            start: publicFunction,
            increment: publicIncrement,
            count: publicGetCount
        };

    })();

myRevealingModule.start(); 
现在,揭示模态模式有以下缺点:

这种模式的一个缺点是,如果私有函数引用 一个公共函数,如果修补程序 这是必要的。这是因为私有函数将继续 参考私有实现,该模式不适用于 公共成员,仅限于功能

我不太明白上面这段话的意思,有人能解释一下吗?私人功能是指公共功能,我不太明白,有人能把它分解吗

考虑:

Mod=function(){
功能公司{
返回值()+1;
}
var value=function(){return 42}
var valuePlusOne=function(){return inc()}
返回{
价值:价值,
valuePlusOne:valuePlusOne
}
}()
document.write(Mod.valuePlusOne())//43
Mod.value=函数(){
返回999
}

document.write(Mod.valuePlusOne())//仍然是43,而不是1000
@george参考您的第一个示例为什么
value()
内部
inc()
仍然引用旧的
value()
函数,即使
value()
函数已被重写。@AlexanderSolonik:添加了一个解释。