我实现了一个小的(可能不是标准的)函数来获取 JavaScript 中的调用堆栈。但是,下面的这段代码只获取函数引用。是否有可能是每个调用者的对象?
function getCallStack() {
let stack = [];
let caller = arguments.callee.caller;
while (caller !== null) {
stack.push(caller); // I would like "stack.push([caller, getObject(caller)]);
caller = caller.caller;
}
return stack;
}
如果我执行以下代码console.log(getCallStack()),我可以得到类似[ [Function: f3], [Function: f2], [Function: f1] ]. 我想得到类似 [[[Function: f3], obj3], [[Function: f2], obj2], [[Function: f1], obj1] ]在哪里obj1, obj2, obj3只是对对象的引用。