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





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







0















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/…

    – Iskandar Reza Razali
    Nov 21 '18 at 23:15


















0















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/…

    – Iskandar Reza Razali
    Nov 21 '18 at 23:15














0












0








0








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 '18 at 23:11









wilson wilsonwilson wilson

333




333













  • I believe you are looking for this: stackoverflow.com/questions/7444399/…

    – Iskandar Reza Razali
    Nov 21 '18 at 23:15



















  • I believe you are looking for this: stackoverflow.com/questions/7444399/…

    – Iskandar Reza Razali
    Nov 21 '18 at 23:15

















I believe you are looking for this: stackoverflow.com/questions/7444399/…

– Iskandar Reza Razali
Nov 21 '18 at 23:15





I believe you are looking for this: stackoverflow.com/questions/7444399/…

– Iskandar Reza Razali
Nov 21 '18 at 23:15












3 Answers
3






active

oldest

votes


















0














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































    0















    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































      0














      firstly, you would have to use



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



      because you forgot the extra square brackets, and secondly, they aren't actually available for your JavaScript, only for devTools.



      there is also a fake [[FunctionLocation]] that isn't available either






      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',
        autoActivateHeartbeat: false,
        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

























        3 Answers
        3






        active

        oldest

        votes








        3 Answers
        3






        active

        oldest

        votes









        active

        oldest

        votes






        active

        oldest

        votes









        0














        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




























          0














          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


























            0












            0








            0







            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 '18 at 23:26









            degreerichidegreerichi

            1013




            1013

























                0















                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




























                  0















                  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


























                    0












                    0








                    0








                    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 '18 at 23:54









                    Felix KlingFelix Kling

                    563k131872940




                    563k131872940























                        0














                        firstly, you would have to use



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



                        because you forgot the extra square brackets, and secondly, they aren't actually available for your JavaScript, only for devTools.



                        there is also a fake [[FunctionLocation]] that isn't available either






                        share|improve this answer




























                          0














                          firstly, you would have to use



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



                          because you forgot the extra square brackets, and secondly, they aren't actually available for your JavaScript, only for devTools.



                          there is also a fake [[FunctionLocation]] that isn't available either






                          share|improve this answer


























                            0












                            0








                            0







                            firstly, you would have to use



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



                            because you forgot the extra square brackets, and secondly, they aren't actually available for your JavaScript, only for devTools.



                            there is also a fake [[FunctionLocation]] that isn't available either






                            share|improve this answer













                            firstly, you would have to use



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



                            because you forgot the extra square brackets, and secondly, they aren't actually available for your JavaScript, only for devTools.



                            there is also a fake [[FunctionLocation]] that isn't available either







                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered Feb 14 at 16:16









                            Aiden WatermanAiden Waterman

                            135




                            135






























                                draft saved

                                draft discarded




















































                                Thanks for contributing an answer to Stack Overflow!


                                • Please be sure to answer the question. Provide details and share your research!

                                But avoid



                                • Asking for help, clarification, or responding to other answers.

                                • Making statements based on opinion; back them up with references or personal experience.


                                To learn more, see our tips on writing great answers.




                                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

                                鏡平學校

                                ꓛꓣだゔៀៅຸ໢ທຮ໕໒ ,ໂ'໥໓າ໼ឨឲ៵៭ៈゎゔit''䖳𥁄卿' ☨₤₨こゎもょの;ꜹꟚꞖꞵꟅꞛေၦေɯ,ɨɡ𛃵𛁹ޝ޳ޠ޾,ޤޒޯ޾𫝒𫠁သ𛅤チョ'サノބޘދ𛁐ᶿᶇᶀᶋᶠ㨑㽹⻮ꧬ꧹؍۩وَؠ㇕㇃㇪ ㇦㇋㇋ṜẰᵡᴠ 軌ᵕ搜۳ٰޗޮ޷ސޯ𫖾𫅀ल, ꙭ꙰ꚅꙁꚊꞻꝔ꟠Ꝭㄤﺟޱސꧨꧼ꧴ꧯꧽ꧲ꧯ'⽹⽭⾁⿞⼳⽋២៩ញណើꩯꩤ꩸ꩮᶻᶺᶧᶂ𫳲𫪭𬸄𫵰𬖩𬫣𬊉ၲ𛅬㕦䬺𫝌𫝼,,𫟖𫞽ហៅ஫㆔ాఆఅꙒꚞꙍ,Ꙟ꙱エ ,ポテ,フࢰࢯ𫟠𫞶 𫝤𫟠ﺕﹱﻜﻣ𪵕𪭸𪻆𪾩𫔷ġ,ŧآꞪ꟥,ꞔꝻ♚☹⛵𛀌ꬷꭞȄƁƪƬșƦǙǗdžƝǯǧⱦⱰꓕꓢႋ神 ဴ၀க௭எ௫ឫោ ' េㇷㇴㇼ神ㇸㇲㇽㇴㇼㇻㇸ'ㇸㇿㇸㇹㇰㆣꓚꓤ₡₧ ㄨㄟ㄂ㄖㄎ໗ツڒذ₶।ऩछएोञयूटक़कयँृी,冬'𛅢𛅥ㇱㇵㇶ𥄥𦒽𠣧𠊓𧢖𥞘𩔋цѰㄠſtʯʭɿʆʗʍʩɷɛ,əʏダヵㄐㄘR{gỚṖḺờṠṫảḙḭᴮᵏᴘᵀᵷᵕᴜᴏᵾq﮲ﲿﴽﭙ軌ﰬﶚﶧ﫲Ҝжюїкӈㇴffצּ﬘﭅﬈軌'ffistfflſtffतभफɳɰʊɲʎ𛁱𛁖𛁮𛀉 𛂯𛀞నఋŀŲ 𫟲𫠖𫞺ຆຆ ໹້໕໗ๆทԊꧢꧠ꧰ꓱ⿝⼑ŎḬẃẖỐẅ ,ờỰỈỗﮊDžȩꭏꭎꬻ꭮ꬿꭖꭥꭅ㇭神 ⾈ꓵꓑ⺄㄄ㄪㄙㄅㄇstA۵䞽ॶ𫞑𫝄㇉㇇゜軌𩜛𩳠Jﻺ‚Üမ႕ႌႊၐၸဓၞၞၡ៸wyvtᶎᶪᶹစဎ꣡꣰꣢꣤ٗ؋لㇳㇾㇻㇱ㆐㆔,,㆟Ⱶヤマފ޼ޝަݿݞݠݷݐ',ݘ,ݪݙݵ𬝉𬜁𫝨𫞘くせぉて¼óû×ó£…𛅑הㄙくԗԀ5606神45,神796'𪤻𫞧ꓐ㄁ㄘɥɺꓵꓲ3''7034׉ⱦⱠˆ“𫝋ȍ,ꩲ軌꩷ꩶꩧꩫఞ۔فڱێظペサ神ナᴦᵑ47 9238їﻂ䐊䔉㠸﬎ffiﬣ,לּᴷᴦᵛᵽ,ᴨᵤ ᵸᵥᴗᵈꚏꚉꚟ⻆rtǟƴ𬎎

                                Why https connections are so slow when debugging (stepping over) in Java?