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();
0
Rattle 31 Mei 2019, 14:05

2 jawaban

Jawaban Terbaik

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 dari closureScope untuk melihat nilai Anda dalam cakupan tertentu

enter image description here

4
Code Maniac 31 Mei 2019, 11:12

Ini adalah alternatif dengan alat pengembang Chrome

enter image description here

0
Karim 31 Mei 2019, 11:25