I have a plex javascript object which is generated by some third party tool, which looks like this (inside Chrome Developer Tools Watch panel):
I'm interested in reading those text
and value
attributes of i
Object.
I've never seen such <function scope>
thing before. In such cases,
How to access values from
<function scope>
's Closure in Chrome Developer tool's Watch panel?
Or is it not possible?
I have a plex javascript object which is generated by some third party tool, which looks like this (inside Chrome Developer Tools Watch panel):
I'm interested in reading those text
and value
attributes of i
Object.
I've never seen such <function scope>
thing before. In such cases,
How to access values from
<function scope>
's Closure in Chrome Developer tool's Watch panel?
Or is it not possible?
Share Improve this question edited Jul 12, 2016 at 11:10 Mr.X asked Jul 12, 2016 at 10:57 Mr.XMr.X 31.4k27 gold badges147 silver badges229 bronze badges 3-
@vsharper It is returning
<not available>
, but forarg.layer.getElements()[0].coordinates.prototype
also gives the same Closure thing – Mr.X Commented Jul 12, 2016 at 11:48 - devtoolsecrets./secret/… firebug may be able to do what you want – Carter Cole Commented Mar 20, 2017 at 15:53
- @CarterCole Okey, but how? – Mr.X Commented Mar 21, 2017 at 5:07
2 Answers
Reset to default 4A closure is a special kind of object that bines two things: a function, and the environment in which that function was created. The environment consists of any local variables that were in-scope at the time that the closure was created.
Source: MDN Closures
The i
object you are seeing was created at some point in the past, and the function you have paused in was created within the same outer function that created the object. When the inner function accesses the variables of the outer function, a closure is created to "remember" them.
You can't access the closed over variables directly.
You can change a Date value like this:
- right click on your variable in "Scope" (on the right of your source tab).
- select "store object as global variable".
- now you will have jumped to console and have a new global variable "temp1". (1 will increased if you repeatly doing this)
- type temp1.setTime([your-date-value]) will change the value of it.
(confirmed in Chrome verion 88)