首页 > 解决方案 > 如何在 JavaScript 中从调用者获取对象引用

问题描述

我实现了一个小的(可能不是标准的)函数来获取 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只是对对象的引用。

标签: javascriptarguments

解决方案


推荐阅读