2012-07-11 151 views

回答

3

您可以在Chrome DevTools中的特定行上设置断点,该断点位于所述变量的范围/上下文内。当浏览器执行到达断点时,您将可以访问其全局范围内的所有变量/函数。

您也可以使用Chrome的控制台并输出在当前范围内可访问的任何变量。有关Chrome的DevTools更多信息,请访问:

https://developers.google.com/chrome-developer-tools/

+1

谢谢,我没设置函数中的断点,因此可以访问变量的范围。我现在如何搜索值为“Fred”的变量?这个函数有100个局部变量。 – dangerChihuahua007 2012-07-11 18:17:09

+0

将鼠标悬停在每个变量上,这将显示一个弹出式窗口,并显示它分配的值。 – xandercoded 2012-07-11 18:28:52

+0

实际上,如果您有最新版本的Chrome,则可以从Eclipse调试器访问它们:http://code.google.com/p/chromedevtools/wiki/Release_0_3_6#Function_Scope_and_Primitve_Values Chrome浏览器内开发工具应尽快赶上特征。 – beefeather 2012-07-12 15:09:50

0

手动控制台是这样的:

console.log(this); 

OR

console.log({set x(){}}); 

这相当于:

console.log(Object.defineProperty({},'x',{get: function(){}})); 

控制台查找:

get x: function(){} - ><function scope> - >Global: Window

7

你需要一个脚本添加到控制台,让您可以真正执行搜索,作为开发工具不要” t默认情况下允许。下面是你该功能(见我要点的评论如下的更新):

function scanScope(whatToScan, scanValue) { 
 
\t for (var key in whatToScan) { 
 
\t \t if (whatToScan[key] == scanValue) { 
 
\t \t \t console.log(key + ' = ' + whatToScan[key]); \t \t 
 
\t \t } else { 
 
\t \t \t if((typeof whatToScan[key] === "object") && (key !== null)) { 
 
\t \t \t \t scanScope(whatToScan[key], scanValue); 
 
\t \t \t } 
 
\t \t } 
 
\t } 
 
}

复制并粘贴到控制台,然后你要搜索的范围叫它通过和你想要搜索的价值。 当然,要小心不要搜索太大的物体。如果你正在编写的角度,例如,并按照“总有一个点”的规则,你可以像呼叫通过它扫描:

scanScope($scope.model, 'Fred');

+3

顺便提一下,我已经制作了此脚本的增强版本(因为我喜欢并经常使用它),并将其作为要点发布:https://gist.github.com/DorkForce/34eb9a1ebf14cc5b0ba7 – 2015-04-23 12:55:57

相关问题