私はこのQnAで同様のスレッドを見ましたが、具体的なシナリオは次のとおりです。Javascriptオブジェクトがメモリからガベージコレクションされるときは?
function render(canvas) {
var renderer = new Renderer(canvas);
renderer.render();
}
Renderer.render()
<canvas>
にいくつかのものを描画します。今のところ、これは動作するということです。つまり、インスタンスrenderer
はガベージコレクションされません。これは私の質問に私をもたらします - renderer
はいつゴミ収集されますか?このオブジェクトは、それ自身のメソッドを除いてどこでも参照されることに注意してください。
レンダリングが終了すると、そのオブジェクトはガベージコレクションされます。それを強制する方法はありますか?
レンダラが範囲外になった後、**ガベージコレクションではないことをどのように知っていますか? –
それまでは、範囲外になるとすぐにレンダリングが停止するはずでした。それは事実上何もレンダリングできなかったことを意味します。 – AppleGrew
ああ、私は 'render()'はすぐにレンダリングするつもりはないと付け加えるべきです。これはキューの並べ替えであり、キューを処理するために後で実行される 'setTimeout'を設定します。これは、レンダリング中にブラウザがロックされないようにするためのトリックです。 – AppleGrew