繁体   English   中英

如何获取V8引擎中javascript函数的执行上下文

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM