gpt4 book ai didi

javascript - 如何在 chrome 调试器中找到匿名函数的闭包?

转载 作者:行者123 更新时间:2023-11-29 10:48:38 26 4
gpt4 key购买 nike

在调试时,我在哪里可以找到匿名函数的闭包?

在非匿名函数的情况下,它似乎出现在“功能范围”下。例如:

    function outer(x){
var temp = 0;
return function inner(){
alert(++x);
};
}
var out = outer(3);
out();
debugger;
out = outer(5);
out();

在这种情况下,我可以看到 closure_in_functionalscope in watch 表示“out”。

但是,当我使用如下所示的匿名函数时:

    function outer(x){
var temp = 0;
return function (){
alert(++x);
};
}
outer(3)();
debugger;
outer(5)();

在这种情况下,我没有看到 anonymous function作为 watch 表达式中的闭包。在匿名函数的情况下,哪个对象存储闭包?

最佳答案

与内部函数命名与否无关

在第一个屏幕截图中,您正在检查 out 变量,该变量引用返回的函数但 outer。该函数在其闭包范围内有 x

在第二个屏幕截图中,您正在检查 outer 变量,它引用了一个命名的全局函数。在该代码片段中,您没有任何变量来引用结果或 outer(3)。如果像第一个示例 var out = outer(3) 那样将其分配给变量并在该分配后放置一个断点,您将能够看到 out 的闭包范围。或者,您可以通过在调试器中添加 outer(3) 的“监视表达式”来检查它,而无需修改您的代码。

关于javascript - 如何在 chrome 调试器中找到匿名函数的闭包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14490707/

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