最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

javascript - How to access values from <function scope>'s Closure in Chrome Developer tool's Watch

matteradmin6PV0评论

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 for arg.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
Add a ment  | 

2 Answers 2

Reset to default 4

A 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)

Post a comment

comment list (0)

  1. No comments so far