Chrome javascript工具:全局,关闭和本地范围

时间:2012-10-21 20:49:10

标签: backbone.js google-chrome-devtools

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

我有点理解全局,封闭和本地。全局范围将是全局命名空间中的任何内容。 Local是当前范围内的所有变量。你能用实际的术语解释Event和EventView在封闭范围内意味着什么,以及如何改善我对应用程序运作方式的理解......这可以为我提供什么见解?此外,你会注意到在本地范围内,'this'被称为'孩子'。为什么?父母会怎样?

enter image description here

1 个答案:

答案 0 :(得分:4)

在闭包上阅读:How do JavaScript closures work?

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

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 }

调试时,了解有多少关闭需要查找变量定义,可能适用的其他上下文数量,在本地范围内更改它的后果等等,这只是有帮助的。 / p>