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:添加了一个解释。