パフォーマンスを念頭に置いて Javascript モジュールを作成する方法を模索しています。
//私のライブラリ
var MyModule = 関数(コールバック){
変数カウント = 0;
主要(); //私の意見では醜い
//Function 公開したい。
関数 main(){
カウント ++;
window.specialApi.doWorkAndCallback(シークレット);
//…
}
//非公開にしたい関数
//カウンタ変数にアクセスする必要があります (#closure)
関数シークレット(){
もし(カウント=== 2){
折り返し電話();
}
}
//プライベート関数
//その他のプライベート関数
//…
};
//後で、他の誰でも MyModule を使用できます。
MyModule(function(){console.log("ok");});
ここで見つけた問題は、MyModule() を呼び出すたびに、JS VM が関数リスト全体を再解釈するため、パフォーマンスが良くないことです。
次のことを可能にするパターンはありますか:
- メイン関数を公開します。
- シークレット機能は非公開にしてください。タスクを強化する可能性のあるカウンター変数に注意してください。
- 一度だけ解析するMyModule
ありがとう