Saya men-debug aplikasi React JS melalui VSCode dan Chrome. Pada breakpoint, variabel yang saya minati terlihat di bagian Penutupan dari daftar variabel. Di level lain dari pelacakan tumpukan, variabel tidak tersedia. Fungsi didefinisikan di tingkat atas file JS-nya, dan saya tidak dapat melihat di mana penutupan didefinisikan, dan khususnya di mana variabel pertama kali ditetapkan. Dipanggil dari tempat lain, variabel cakupan penutupan berbeda dan saya tidak mengerti mengapa.
Apakah ada cara di VS Code Debugging atau Chrome Dev Tools untuk melihat di mana cakupan penutupan ditentukan?
Sebagai contoh sederhana, jika men-debug kode JS di bawah dan mencapai breakpoint di a=1
apakah ada cara untuk mengidentifikasi variabel closureScope di mana a didefinisikan? Dalam contoh nyata, variabel cakupan fungsi dan penutupan tidak jelas terkandung dalam fungsi atau blok lain, tetapi pemahaman saya tentang JS dan penutupan modern terbatas dan saya mungkin kehilangan sesuatu yang jelas.
function main() {
let closureScope = (
function() {
var a = 0;
return {
inside1: function() {
a = 1;
},
inside2: function() {
a = 2;
}
};
})();
closureScope.inside1();
closureScope.inside2();
}
main();
2 jawaban
Anda cukup menggunakan debugger di vscode
atau chrome
- Tambahkan breakpoint dalam kode, Anda dapat mengklik titik merah di sisi kiri file Anda untuk menambahkan break point
- Atau gunakan
debugger;
di mana Anda ingin breakpoint - Di sisi kiri perluas daftar
variable
dan dariclosureScope
untuk melihat nilai Anda dalam cakupan tertentu
Ini adalah alternatif dengan alat pengembang Chrome