0

我想通过获取执行上下文或更具体的 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 引擎中函数的作用域链。有人可以帮我吗?非常感谢!

4

2 回答 2

0

您可以(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);
于 2015-05-04T07:51:30.390 回答
0

无论你想在哪里看到调用序列,你都可以简单地调用:console.trace();

于 2015-05-04T07:59:22.643 回答