0
私は自分の状況についてより良い質問ができると思います。Javascript関数バインディング可能なメモリリーク?
文脈をコードで教えてください。
私はこの一般的な機能を、さまざまなバリエーション(約3または4ケースのみ)でバインディングすることを意図しています。
GeneralFunction = function(helper, paramA, paramB) {
if (paramA == "hello") {
return helper(paramA);
}
return paramB;
}
それから私は、一般的な機能の特定のバリエーションを返すために、この機能を持っています。
function getFlavorX() {
return GeneralFunction.bind(undefined, helperX);
}
私の関心はgetFlavorX()
は多くの何倍(何千)と呼ばれることができ、かつdocumentation of bindによると、bind
への各呼び出しは新しい機能を作成するようだということです。まったく同じでもhelperX
?
だから、私は機能オブジェクトを漏らしていると思いますか?
helperXにバインドする関数を既に持っている場合は、helperXにバインドする新しい関数を作成しないようにコードをスマートにしてください。p –
はい、 'bind'は新しい関数オブジェクトを作成しますが、 -collectedはコードの残りの部分に依存します。実際のパフォーマンス上の問題はありますか? – Bergi
@JaromandaXありがとう!いったんこのメモリリークの懸念を考えれば、私は自分のコードを変更してそれを行うだけです。私はこれが正当な懸念であるかどうか疑問に思っています... Javascriptが自動的にこれらの種類のものを自動的にガベージコレクションできるかどうか? –