在JavaScript中可以进行函数范围跟踪吗?

时间:2018-11-05 15:21:34

标签: javascript function scope trace

我目前正在为JavaScript(我尚未使用)应用程序创建一个日志记录接口,我想知道是否有可能在JS中跟踪函数作用域。

在C ++中,我可以做某事。像

int some_function(int arg1) {
    function_tracer(__PRETTY_FUNCTION__);
    do_something();
}

可与RAII idiom配合使用,在Python中,我将使用装饰器:

@function_tracer
def some_function(arg1)
    do_something()

这两种方法(至少在某种程度上)都知道函数的作用域,与上述enter_scope() / leave_scope()方法相比,具有以下优点:

  • 我完全不必写leave()-电话
  • 多个return语句不需要多个leave()调用
  • 最重要:异常安全!

如何在JavaScript中执行此操作?我发现的示例将函数作为包装函数的参数进行跟踪(例如Python中的装饰器)。

这是用JavaScript做到这一点的唯一方法吗?

您采用什么方法?

1 个答案:

答案 0 :(得分:0)

enter image description here

打开调试器,然后在控制台中选择Call Stack选项卡时,您可以在RHS上看到Scope Sources。确保在特定的代码行上设置了调试点,以了解其调用堆栈和作用域。