簡體   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