2

我在 Chrome javascript 控制台中使用了一个主干日历应用程序(它允许您在日历上发布事件),并在右侧(见图)它有一个显示本地、关闭和全局范围的面板。在这个特定的应用程序中,我在 EventsView 中设置了调试器,Chrome 告诉我 Event(一个模型)和 EventView(一个特定事件的视图)在 Closure 范围内。

我有点理解全局、封闭和局部。全局范围可以是全局命名空间中的任何内容。本地是当前范围内的所有变量。你能用实际的术语解释一下 Event 和 EventView 处于封闭范围内意味着什么,以及这将如何提高我对应用程序如何工作的理解......这能给我提供什么见解?此外,您会注意到在 Local 范围内,“this”被称为“child”。为什么?父母会是什么?

在此处输入图像描述

4

1 回答 1

5

在此处阅读有关闭包的内容:JavaScript 闭包如何工作?

但简短的回答,假设您在下面第 6 行的断点处暂停,变量“全局”将出现在调试工具的全局变量部分,“闭包”出现在“闭包”部分,“本地”出现在“局部”部分:

1 var global = 'foo';
2
3 function bar() {
4   var closure = 'baz';
5   function oof() {
6       var local = 'rab'; // stopped on a breakpoint on this line
7   }
8 }

调试时,了解需要查看多少个闭包才能找到变量定义、它可能适用于多少其他上下文、在本地范围内更改它的后果等会很有帮助。

于 2012-10-21T21:01:25.587 回答