В настоящее время я работаю над интерфейсом протоколирования для приложения JavaScript (которое пока не используется), и мне интересно, можно ли отслеживать область действия функции в JS.
В C ++ я мог бы сделать что-то как
int some_function(int arg1) {
function_tracer(__PRETTY_FUNCTION__);
do_something();
}
, который работает с RAII идиомой , а в Python я бы использовал декораторы:
@function_tracer
def some_function(arg1)
do_something()
Оба подхода учитывают область действия функции (по крайней мере, в некоторой степени) со следующими преимуществами по сравнению с подходом enter_scope()
/ leave_scope()
, как описано:
- Мне вообще не нужно писать
leave()
-Call
- несколько
return
операторов не требуют нескольких leave()
вызовов
- самое главное: исключение безопасно!
Как мне это сделать в JavaScript? Примеры, которые я нашел, помещают функции для отслеживания в качестве аргументов функции-оболочки (как в случае с декораторами в Python).
Это единственный способ сделать это в JavaScript?
Какие у вас подходы?