gpt4 book ai didi

javascript - javascript 中的标记和清除(上下文变量)

转载 作者:行者123 更新时间:2023-12-02 19:15:20 25 4
gpt4 key购买 nike

我正在阅读Web 开发人员的专业 JavaScript

我在阅读“当垃圾收集器运行时,它会标记存储在内存中的所有变量。然后它会清除上下文中的变量和引用的变量的标记”时遇到问题通过上下文变量。”

我知道当任何变量都无法访问该对象时,关联的内存将被回收。

“上下文中的变量”是什么意思?它们是可以在作用域链中找到的变量吗?但是“上下文变量引用的变量”又如何呢?

我很困惑。

最佳答案

我假设这是为了避免意外删除闭包中使用的变量。在 javascript 中,就像任何其他函数式语言一样,仅仅无法访问并不足以告诉您是否应该删除对象。

以下面的代码为例:

function a () {
var x=0;
return function () {
alert(x++);
}
}

var b = a();
// at this point, the instance of `x` created by calling `a` is
// no longer reachable but we are still using it in the closure.

如果我们只遵循“不可达”规则,那么创建的闭包将丢失变量x

关于javascript - javascript 中的标记和清除(上下文变量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13209087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com