Reputation: 20895
I set a breakpoint in a javascript function with Google Chrome Developer Tools.
I am looking for a variable in the scope variables of the function with the value "Fred." How do I search for this value amongst the variables within the scope of the function?
Upvotes: 26
Views: 42914
Reputation: 35409
Since you've set a breakpoint within Chrome DevTools on a particular line, that's within the scope/context of said variable. When browser execution reaches the breakpoint, you'll have access to all variable/functions within its, and the global, scope.
Navigate to the console tab and start typing, the console will autocomplete variables within scope.
For more information about Chrome DevTools visit:
https://developers.google.com/chrome-developer-tools/
Upvotes: 1
Reputation: 306
You'll need to add a script to the console so that you can actually perform a search, as the Developer Tools don't allow for this by default. Here's that function for you (See my Gist comment below for an update):
function scanScope(whatToScan, scanValue) {
for (var key in whatToScan) {
if (whatToScan[key] == scanValue) {
console.log(key + ' = ' + whatToScan[key]);
} else {
if( (typeof whatToScan[key] === "object") && (key !== null) ) {
scanScope(whatToScan[key], scanValue);
}
}
}
}
Copy and paste that into the console, and then call it with the scope you want to search through and the value you want to search for. Be careful that you don't search too large an object, of course. If you're programming in Angular, for instance, and following the "always have a dot" rule, you can scan through it with a call like:
scanScope($scope.model, 'Fred');
Upvotes: 13
Reputation:
manually in console this way:
console.log(this);
OR
console.log({set x(){}});
which is equivalent to:
console.log(Object.defineProperty({},'x',{get: function(){}}));
in console look up:
get x: function (){}
--> <function scope>
--> Global: Window
Upvotes: -2