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

hey*_*ols 3 javascript garbage-collection

我在JavaScript中有一些关于垃圾收集的读物,根据它们,函数的局部变量在函数返回后被收集(除了循环引用需要打破循环以使GC工作).

我想要了解的是,在这种情况下"返回功能"意味着什么?

这是不是意味着:

  1. 该函数必须返回值.

    或者干脆:

  2. 函数调用已结束.

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

  • 那些不返回值的函数呢?
  • 我应该return;向不返回任何东西的函数添加一个空,以使垃圾收集器完成它的工作吗?

bfa*_*tto 6

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

关于垃圾收集,请记住,函数返回后不会立即收集局部变量; 他们可以在那时获得垃圾收集资格.垃圾收集器在浏览器认为必须运行时运行,或者认为它可以在不影响可见性能的情况下运行(并且这取决于实现).