我使用Google Chrome Developer Tools在JavaScript函数中设置了一个断点。如何在Google Chrome开发人员工具中搜索范围变量?
我正在寻找函数的作用域变量中值为“Fred”的变量。如何在函数范围内的变量中搜索此值?
我使用Google Chrome Developer Tools在JavaScript函数中设置了一个断点。如何在Google Chrome开发人员工具中搜索范围变量?
我正在寻找函数的作用域变量中值为“Fred”的变量。如何在函数范围内的变量中搜索此值?
您可以在Chrome DevTools中的特定行上设置断点,该断点位于所述变量的范围/上下文内。当浏览器执行到达断点时,您将可以访问其全局范围内的所有变量/函数。
您也可以使用Chrome的控制台并输出在当前范围内可访问的任何变量。有关Chrome的DevTools更多信息,请访问:
手动控制台是这样的:
console.log(this);
OR
console.log({set x(){}});
这相当于:
console.log(Object.defineProperty({},'x',{get: function(){}}));
控制台查找:
get x: function(){}
- ><function scope>
- >Global: Window
你需要一个脚本添加到控制台,让您可以真正执行搜索,作为开发工具不要” 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');
顺便提一下,我已经制作了此脚本的增强版本(因为我喜欢并经常使用它),并将其作为要点发布:https://gist.github.com/DorkForce/34eb9a1ebf14cc5b0ba7 – 2015-04-23 12:55:57
谢谢,我没设置函数中的断点,因此可以访问变量的范围。我现在如何搜索值为“Fred”的变量?这个函数有100个局部变量。 – dangerChihuahua007 2012-07-11 18:17:09
将鼠标悬停在每个变量上,这将显示一个弹出式窗口,并显示它分配的值。 – xandercoded 2012-07-11 18:28:52
实际上,如果您有最新版本的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