0

new以前は、キーワードを使用して JavaScript の「クラス」のインスタンスを作成し、new myStuff.DoSomething();そのインスタンスを取得するためにコンストラクターを次のように呼び出していました。必要に応じて、インスタンスに次のような参照を与えることがあります。var myObj = new myStuff.DoSomething();

メモリ管理について考えるようになりました。オブジェクトが使用されなくなった場合、JS は参照なしでオブジェクトをクリーンアップしますか? -参照のあるものをクリーンアップするのと同じ方法。また、kill されたオブジェクト内のすべてのイベント ハンドラーについてはどうでしょうか。

例: たとえば、newキーワードを使用し、オブジェクトへの参照を使用せずにドラッグ可能なウィンドウを作成し、イベント ハンドラーなどをアタッチするとします。次に、DOM からウィンドウを削除することにしました。実際のオブジェクトも削除されていることを確認するにはどうすればよいですか?

4

1 に答える 1

2

オブジェクトが使用されなくなった場合、JS は参照なしでオブジェクトをクリーンアップしますか?

はい。JavaScript はガベージ コレクション言語です。

また、kill されたオブジェクト内のすべてのイベント ハンドラーについてはどうでしょうか。

言語としての JS だけでなく、DOM について話しているため、場合によって異なります。特定の DOM 実装 (古いバージョンの IE など)では、この方法でメモリ リークが発生することで有名です。他のブラウザー/DOM 実装には、このようなバグがない場合があります。

于 2012-04-28T14:28:28.340 に答える