我叫命令:
arguments.callee
我收到错误:
(node:1956) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them
(node:1956) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
我对如何使用arguments.callee感到有些困惑?
我想做什么?我正在尝试操纵堆栈跟踪。我想删除最新的函数调用(如果可能的话?)。
我读过https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments/callee但它并没有让我更聪明。
答案 0 :(得分:0)
“修改”调用堆栈的唯一方法是调用函数并从函数返回。
您看到的错误是由您在严格模式下运行的代码引起的。这意味着你在这个函数的范围内有"use strict"
。目前还不清楚你是否真的需要使用它,不管你想做什么。
如果你试图将当前的调用堆栈作为字符串进行一些修改,那么你可以对字符串进行修改,而不是在调用堆栈上进行修改:
var stack = Error().stack;
// ... modify stack