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