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