console.trace()在控制台上输出其结果。
我想以字符串形式获取结果并将其保存到文件中。

我没有为函数定义名称,也无法通过callee.caller.name获得它们的名称。

最佳答案

我不确定firefox,但是在v8 / chrome中,您可以在Error构造函数上使用一种称为captureStackTrace的方法。 (More info here)

因此,获取该漏洞的一种方法是:

var getStackTrace = function() {
  var obj = {};
  Error.captureStackTrace(obj, getStackTrace);
  return obj.stack;
};

console.log(getStackTrace());

通常,getStackTrace会在被捕获时放在堆栈中。那里的第二个参数将getStackTrace排除在堆栈跟踪之外。

07-24 15:29