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()​;

1 つの JS 関数内のすべてのローカル変数と関数宣言を知りたいです。JS 関数のスコープ チェーンが、必要な情報を提供してくれるのではないかと思います。しかし、V8 エンジン内の関数のスコープ チェーンをどこで取得できるかわかりません。

4

2 に答える 2

0

その時点での呼び出しシーケンスを確認したい場合は、次のように呼び出すだけです: console.trace();

于 2015-05-04T07:59:22.643 に答える
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 に答える