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