2

次のようなコードを実行するときにリスクがあるかどうか疑問に思っていました。

window.doSomething = function() {
   window.doSomething = null;

   // do some stuff here
}

これは常に正常に実行されますか、それともガベージコレクターが実行中にクリーンアップする状況が発生する可能性がありますか?

4

1 に答える 1

4
window.doSomething = null ;

doSomethingこれにより、以前に関数を参照していたプロパティが削除windowされます。

現在使用している関数は最後まで実行されます。これは、関数を入力すると参照カウントが増加し、関数が早期に破棄されるのを防ぐためです。

関数が実行されると、ガベージコレクションがスケジュールされます。

于 2013-02-18T09:58:22.683 に答える