我正在探索编写具有性能的 Javascript 模块的方法。
//我的库
var MyModule = 函数(回调){
变量计数 = 0;
主要的(); //在我看来很丑
//我想要公开的函数。
函数主(){
计数++;
window.specialApi.doWorkAndCallback(秘密);
//…
}
//我要保密的函数
//需要访问计数器变量(#closure)
函数秘密(){
如果(计数 === 2){
打回来();
}
}
//私有函数
//其他私有函数
//…
};
//以后任何人都可以使用MyModule。
MyModule(function(){console.log("ok");});
我在这里发现的问题是,每次调用 MyModule() 时,JS VM 都会重新解释整个函数列表,这对性能不利。
是否有允许我执行以下操作的模式:
- 暴露主要功能。
- 将秘密功能保密。请注意可能会强化任务的计数器变量。
- 只解析一次MyModule
谢谢