Я отлаживаю приложение React JS через VSCode и Chrome. В точке останова интересующая меня переменная отображается в разделе Closure списка переменных. На других уровнях трассировки стека переменная недоступна. Функция определена на верхнем уровне ее JS-файла, и я не вижу, где определено замыкание и, в частности, где переменная назначается первой. Вызывается из другого источника, переменная замыкания замыкания отличается, и я не понимаю, почему.
Есть ли способ отладки кода VS или инструментов разработчика Chrome увидеть, где была определена область закрытия?
В качестве простого примера, если при отладке кода JS ниже и достижении точки останова на a=1
есть ли способ определить переменную closureScope, в которой определен a? В реальном примере переменные области действия и замыкания явно не содержатся ни в каких других функциях или блоках, но мое понимание современных JS и замыканий ограничено, и я могу упустить что-то очевидное.
function main() {
let closureScope = (
function() {
var a = 0;
return {
inside1: function() {
a = 1;
},
inside2: function() {
a = 2;
}
};
})();
closureScope.inside1();
closureScope.inside2();
}
main();