gpt4 book ai didi

javascript - 分析闭包示例

转载 作者:行者123 更新时间:2023-11-28 18:30:19 25 4
gpt4 key购买 nike

看看这个例子,我很难理解当我们设置 outerFunction = null 时幕后到底发生了什么。 ;.我的第一个想法是function outerFunction(){ //nothing } 。然而当调用referenceToInnerFunction时,我们仍然可以获得猴子值。我确信这与范围有关,但我无法理解它。另外,我该如何解决这个问题,以便当我调用 referenceToInnerFunction 时,我得到null以及,相对于 monkey?

function outerFunction() {
var outerVar = "monkey";

function innerFunction() {
return outerVar;
}

return innerFunction;
}

var referenceToInnerFunction = outerFunction();
alert(referenceToInnerFunction());

outerFunction = null;
alert(referenceToInnerFunction());

最佳答案

现代 JavaScript 实现的垃圾收集器算法认为,当某些东西无法访问时,可以对其进行垃圾收集。这里 referenceToInnerFunction 保留对 outerVar 的访问权限,因为

var referenceToInnerFunction = outerFunction();

因此,只要您保留某些东西对其的访问权限,outerVar 就不可能被释放。

更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management

关于javascript - 分析闭包示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38170123/

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