複雑すぎる関数(プロセッサ)に取り組んでいるので、その中にネストされた「ユーティリティ関数」(印刷)に機能の一部を埋め込みました。簡略化したバージョンは次のようになります。
var out = document.getElementById( "output" );
function processor ( n ) {
function print( msg ) {
out.innerHTML += msg;
}
while ( n > 0 ) {
print( n-- );
print( ", " );
}
print( "<br/>" );
}
for ( var i = 0; i < 10; i++ ) {
processor( i );
}
このJSfiddleで実際の動作を確認できます。
問題は、ユーティリティ関数のインスタンスを実際に10個作成しているのprint()
かということです。はいの場合、効用関数を関数の外に置かずにこのコードを書くためのより効率的な方法は何processor()
ですか?この関数は、他の場所ではなく、どこprint()
からでもアクセスできるようにしたいと思います。processor()
1つの解決策は名前空間です。
私はこの質問を読みましたが、それは関連していますが、直接私の答えではありません: ネストされたループでイベントハンドラーを作成する効率:ここで1440関数を作成していますか?