Is there a way to get all variables that are currently in scope in javascript?
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
No. “In scope” variables are determined by the “scope chain”, which is not accessible programmatically.
For detail (quite a lot of it), check out the ECMAScript (JavaScript) specification. Here’s a link to the official page where you can download the canonical spec (a PDF), and here’s one to the official, linkable HTML version.
Update based on your comment to Camsoft
The variables in scope for your event function are determined by where you define your event function, not how they call it. But, you may find useful information about what’s available to your function via
thisand arguments by doing something along the lines of what KennyTM pointed out (for (var propName in ____)) since that will tell you what’s available on various objects provided to you (thisand arguments; if you’re not sure what arguments they give you, you can find out via theargumentsvariable that’s implicitly defined for every function).So in addition to whatever’s in-scope because of where you define your function, you can find out what else is available by other means by doing:
(You can expand on that to get more useful information.)
Instead of that, though, I’d probably use a debugger like Chrome’s dev tools (even if you don’t normally use Chrome for development) or Firebug (even if you don’t normally use Firefox for development), or Dragonfly on Opera, or “F12 Developer Tools” on IE. And read through whatever JavaScript files they provide you. And beat them over the head for proper docs. 🙂