[英]How can I get the execution context of a javascript function inside V8 engine
我想通过获取执行上下文或更确切地说是JS函数的作用域链来了解JS函数的调用关系。 考虑以下示例:
function one() {
var a = 1;
two();
function two() {
var b = 2;
three();
function three() {
var c = 3;
alert(a + b + c);
}
}
}
one();
我想知道一个JS函数中的每个局部变量和函数声明。 我认为JS函数的作用域链也许可以给我我想要的信息。 但是我不知道在哪里可以在V8引擎中找到该函数的作用域链,任何人都可以帮助我吗?非常感谢!
您可以为此使用(new Error()).stack
:
console.log((new Error()).stack);
这是删除该误导性“错误”第一行的代码:
var callStackLines = (new Error()).stack.split('\n');
callStackLines.splice(0, 1);
var callStack = callStackLines.join('\n') + '\n';
console.log(callStack);
您希望在该位置看到调用顺序的任何地方,只需调用:console.trace();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.