javascript - Programmatically accessing function scope using Chrome DevTools console - Stack Overflow

admin2025-04-19  0

When I open up Chrome (v35) DevTools and inspect an object, the console can show me things nested within functions, including something labeled as the '"function scope".

For example, when looking at stackoverflow, I can see that there's a global $ object containing another function called Callbacks. Callbacks, as does $, has a functional scope containing Closure and Global.

  • Question 1: What is the difference between some named object nested directly within a function and some object contained within a Closure in its function scope?
  • Question 2: How do I programmatically reference a function scope in the console? window.$.Callbacks.???? chrome.function???(window.$.Callbacks)

The reason I ask is because I'm looking for memory leaks and would like to search the objects held within functions' closures based on object types and property names.

When I open up Chrome (v35) DevTools and inspect an object, the console can show me things nested within functions, including something labeled as the '"function scope".

For example, when looking at stackoverflow., I can see that there's a global $ object containing another function called Callbacks. Callbacks, as does $, has a functional scope containing Closure and Global.

  • Question 1: What is the difference between some named object nested directly within a function and some object contained within a Closure in its function scope?
  • Question 2: How do I programmatically reference a function scope in the console? window.$.Callbacks.???? chrome.function???(window.$.Callbacks)

The reason I ask is because I'm looking for memory leaks and would like to search the objects held within functions' closures based on object types and property names.

Share asked Sep 4, 2014 at 18:12 bdkosherbdkosher 5,8932 gold badges34 silver badges42 bronze badges 3
  • Is setting a breakpoint an option? – Kevin B Commented Sep 4, 2014 at 18:32
  • stackoverflow./questions/11969062/… – loislo Commented Sep 5, 2014 at 3:33
  • Both setting breakpoints and using heap snapshots requires me to interact with the DevTools GUI. I'm looking to programmatically search through the information displayed in DevTools. For the app I'm working on, there are far too many objects for me to want to manually sift through heap deltas or click-and-expand through stacks. – bdkosher Commented Sep 5, 2014 at 12:06
Add a ment  | 

1 Answer 1

Reset to default 4

What is the difference between some named object nested directly within a function and some object contained within a Closure in its function scope?

The object nested directly with the function is a property of the function object. For example, $.Callback has a .length property with value 1, it does have a .prototype property, it does inherit (__proto__) from Function.prototype etc.

The object in the scope is a variable that is accessible from the scope that surrounds the function. See How do JavaScript closures work?

How do I programmatically reference a function scope in the console?

You cannot. Scopes are not programatically accessible. I don't think the devtools have any helpers to allow this either. See also How do I search through scope variables in Google Chrome Developer Tools?

转载请注明原文地址:http://conceptsofalgorithm.com/Algorithm/1745057375a282482.html

最新回复(0)