Is there a way to get the scopes of a function from outside the function - JS











up vote
0
down vote

favorite












While using chrome devtools console on a web page, searching for how I would access local variables from within a function, I realized that you can view scopes when manually inspecting a function in an object.



I accessed the function with getEventListeners(window).load[2] which returned



▼{listener: ƒ, useCapture: false, passive: false, once: false, type: "load"}

►listener: ƒ ()
once: false
passive: false
type: "load"
useCapture: false
►__proto__: Object



when I clicked on the listener function, it showed an object
►[[Scopes]]: Scopes[3]



The scopes object gave a list of all the variables that were used in the function (which was what I was looking for). However, I can only access these manually. There is nothing like getEventListeners(window).load[2].listener.Scopes



Is there any sort of function or method that will return these variables automatically. Such as:



var foo = getEventListeners(window).load[2].listener.Scopes[0]



Thanks










share|improve this question






















  • I believe you are looking for this: stackoverflow.com/questions/7444399/…
    – I. R. R.
    Nov 21 at 23:15















up vote
0
down vote

favorite












While using chrome devtools console on a web page, searching for how I would access local variables from within a function, I realized that you can view scopes when manually inspecting a function in an object.



I accessed the function with getEventListeners(window).load[2] which returned



▼{listener: ƒ, useCapture: false, passive: false, once: false, type: "load"}

►listener: ƒ ()
once: false
passive: false
type: "load"
useCapture: false
►__proto__: Object



when I clicked on the listener function, it showed an object
►[[Scopes]]: Scopes[3]



The scopes object gave a list of all the variables that were used in the function (which was what I was looking for). However, I can only access these manually. There is nothing like getEventListeners(window).load[2].listener.Scopes



Is there any sort of function or method that will return these variables automatically. Such as:



var foo = getEventListeners(window).load[2].listener.Scopes[0]



Thanks










share|improve this question






















  • I believe you are looking for this: stackoverflow.com/questions/7444399/…
    – I. R. R.
    Nov 21 at 23:15













up vote
0
down vote

favorite









up vote
0
down vote

favorite











While using chrome devtools console on a web page, searching for how I would access local variables from within a function, I realized that you can view scopes when manually inspecting a function in an object.



I accessed the function with getEventListeners(window).load[2] which returned



▼{listener: ƒ, useCapture: false, passive: false, once: false, type: "load"}

►listener: ƒ ()
once: false
passive: false
type: "load"
useCapture: false
►__proto__: Object



when I clicked on the listener function, it showed an object
►[[Scopes]]: Scopes[3]



The scopes object gave a list of all the variables that were used in the function (which was what I was looking for). However, I can only access these manually. There is nothing like getEventListeners(window).load[2].listener.Scopes



Is there any sort of function or method that will return these variables automatically. Such as:



var foo = getEventListeners(window).load[2].listener.Scopes[0]



Thanks










share|improve this question













While using chrome devtools console on a web page, searching for how I would access local variables from within a function, I realized that you can view scopes when manually inspecting a function in an object.



I accessed the function with getEventListeners(window).load[2] which returned



▼{listener: ƒ, useCapture: false, passive: false, once: false, type: "load"}

►listener: ƒ ()
once: false
passive: false
type: "load"
useCapture: false
►__proto__: Object



when I clicked on the listener function, it showed an object
►[[Scopes]]: Scopes[3]



The scopes object gave a list of all the variables that were used in the function (which was what I was looking for). However, I can only access these manually. There is nothing like getEventListeners(window).load[2].listener.Scopes



Is there any sort of function or method that will return these variables automatically. Such as:



var foo = getEventListeners(window).load[2].listener.Scopes[0]



Thanks







javascript google-chrome-devtools






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 21 at 23:11









wilson wilson

242




242












  • I believe you are looking for this: stackoverflow.com/questions/7444399/…
    – I. R. R.
    Nov 21 at 23:15


















  • I believe you are looking for this: stackoverflow.com/questions/7444399/…
    – I. R. R.
    Nov 21 at 23:15
















I believe you are looking for this: stackoverflow.com/questions/7444399/…
– I. R. R.
Nov 21 at 23:15




I believe you are looking for this: stackoverflow.com/questions/7444399/…
– I. R. R.
Nov 21 at 23:15












2 Answers
2






active

oldest

votes

















up vote
0
down vote













I think is not possible, because may represent a security problem for Javascript



And if that is not the case, maybe the variables that you´re looking for were deleted by the garbage collector at the moment when you try to get those



You can read more about Memory Management here:



https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management






share|improve this answer




























    up vote
    0
    down vote














    Is there any sort of function or method that will return these variables automatically.




    No, it's not possible. EnvironmentRecords are not accessible in "userland" code. The association between a function and an environment is internal to the function and the specification doesn't define any way to access that information.



    But of course the association exists and so the developer tools can expose that information for debugging purposes.






    share|improve this answer





















      Your Answer






      StackExchange.ifUsing("editor", function () {
      StackExchange.using("externalEditor", function () {
      StackExchange.using("snippets", function () {
      StackExchange.snippets.init();
      });
      });
      }, "code-snippets");

      StackExchange.ready(function() {
      var channelOptions = {
      tags: "".split(" "),
      id: "1"
      };
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function() {
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled) {
      StackExchange.using("snippets", function() {
      createEditor();
      });
      }
      else {
      createEditor();
      }
      });

      function createEditor() {
      StackExchange.prepareEditor({
      heartbeatType: 'answer',
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader: {
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      },
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      });


      }
      });














       

      draft saved


      draft discarded


















      StackExchange.ready(
      function () {
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53421742%2fis-there-a-way-to-get-the-scopes-of-a-function-from-outside-the-function-js%23new-answer', 'question_page');
      }
      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes








      up vote
      0
      down vote













      I think is not possible, because may represent a security problem for Javascript



      And if that is not the case, maybe the variables that you´re looking for were deleted by the garbage collector at the moment when you try to get those



      You can read more about Memory Management here:



      https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management






      share|improve this answer

























        up vote
        0
        down vote













        I think is not possible, because may represent a security problem for Javascript



        And if that is not the case, maybe the variables that you´re looking for were deleted by the garbage collector at the moment when you try to get those



        You can read more about Memory Management here:



        https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management






        share|improve this answer























          up vote
          0
          down vote










          up vote
          0
          down vote









          I think is not possible, because may represent a security problem for Javascript



          And if that is not the case, maybe the variables that you´re looking for were deleted by the garbage collector at the moment when you try to get those



          You can read more about Memory Management here:



          https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management






          share|improve this answer












          I think is not possible, because may represent a security problem for Javascript



          And if that is not the case, maybe the variables that you´re looking for were deleted by the garbage collector at the moment when you try to get those



          You can read more about Memory Management here:



          https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 21 at 23:26









          degreerichi

          162




          162
























              up vote
              0
              down vote














              Is there any sort of function or method that will return these variables automatically.




              No, it's not possible. EnvironmentRecords are not accessible in "userland" code. The association between a function and an environment is internal to the function and the specification doesn't define any way to access that information.



              But of course the association exists and so the developer tools can expose that information for debugging purposes.






              share|improve this answer

























                up vote
                0
                down vote














                Is there any sort of function or method that will return these variables automatically.




                No, it's not possible. EnvironmentRecords are not accessible in "userland" code. The association between a function and an environment is internal to the function and the specification doesn't define any way to access that information.



                But of course the association exists and so the developer tools can expose that information for debugging purposes.






                share|improve this answer























                  up vote
                  0
                  down vote










                  up vote
                  0
                  down vote










                  Is there any sort of function or method that will return these variables automatically.




                  No, it's not possible. EnvironmentRecords are not accessible in "userland" code. The association between a function and an environment is internal to the function and the specification doesn't define any way to access that information.



                  But of course the association exists and so the developer tools can expose that information for debugging purposes.






                  share|improve this answer













                  Is there any sort of function or method that will return these variables automatically.




                  No, it's not possible. EnvironmentRecords are not accessible in "userland" code. The association between a function and an environment is internal to the function and the specification doesn't define any way to access that information.



                  But of course the association exists and so the developer tools can expose that information for debugging purposes.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Nov 21 at 23:54









                  Felix Kling

                  539k123841891




                  539k123841891






























                       

                      draft saved


                      draft discarded



















































                       


                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function () {
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53421742%2fis-there-a-way-to-get-the-scopes-of-a-function-from-outside-the-function-js%23new-answer', 'question_page');
                      }
                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      Trompette piccolo

                      Slow SSRS Report in dynamic grouping and multiple parameters

                      Simon Yates (cyclisme)