2013-02-18 21 views
2

我只是想知道如果當你執行這樣的代碼的任何風險:的javascript:刪除引用到正在運行的代碼

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

    // do some stuff here 
} 

這是否會一直運行良好,也可能有這樣的情況,其中垃圾收集器會在它仍在運行時清理它?

+0

這就像你說的,只有參考將被刪除。垃圾收集器不會終止該函數。 – Kriem 2013-02-18 10:00:12

回答

4
window.doSomething = null ; 

這將剛剛從window這是以前引用你的函數刪除屬性doSomething

您當前正在使用的函數將運行直到結束,因爲輸入該函數會增加引用計數,從而防止它被提前銷燬。

函數完成後,它將被安排爲垃圾收集。