JavaScript - 函数调用后的垃圾收集

时间:2013-09-12 21:03:26

标签: javascript garbage-collection

我在JavaScript中有一些关于垃圾收集的读物,据他们说,函数的局部变量是在函数返回后收集的(except for the cyclical references,需要打破圆圈才能使GC工作)。

我想要了解的是,在此背景下“返回的功能”是什么意思?

是不是意味着:

  1. 该函数必须返回值。

    或简单地说:

  2. 函数调用已结束。

  3. 常识(至少根据我的意思)建议2),但在我错了的情况下:

    • 那些不返回值的函数呢?
    • 我应该向不返回任何内容的函数添加空return;以使垃圾收集器完成其工作吗?

1 个答案:

答案 0 :(得分:6)

不包含return语句的函数会隐式返回undefined。因此,“结束”和“返回”的功能是相同的。

关于垃圾收集,请记住,函数返回后不会立即收集本地变量;他们可以在此时成为垃圾收集的合格。只要浏览器认为必须运行,或者认为它可以在不影响可见性能的情况下运行(并且依赖于实现),垃圾收集器就会运行。