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;
}
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
add a comment |
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
I believe you are looking for this: stackoverflow.com/questions/7444399/…
– Iskandar Reza Razali
Nov 21 '18 at 23:15
add a comment |
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
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
javascript google-chrome-devtools
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
add a comment |
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
add a comment |
3 Answers
3
active
oldest
votes
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
add a comment |
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.
add a comment |
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
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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
add a comment |
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
add a comment |
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
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
answered Nov 21 '18 at 23:26
degreerichidegreerichi
1013
1013
add a comment |
add a comment |
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.
add a comment |
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.
add a comment |
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.
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.
answered Nov 21 '18 at 23:54
Felix KlingFelix Kling
563k131872940
563k131872940
add a comment |
add a comment |
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
add a comment |
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
add a comment |
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
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
answered Feb 14 at 16:16
Aiden WatermanAiden Waterman
135
135
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
I believe you are looking for this: stackoverflow.com/questions/7444399/…
– Iskandar Reza Razali
Nov 21 '18 at 23:15