Rumah  >  Artikel  >  hujung hadapan web  >  Rantaian skop, prinsip asas JavaScript (penjelasan terperinci dengan gambar dan teks)

Rantaian skop, prinsip asas JavaScript (penjelasan terperinci dengan gambar dan teks)

WBOY
WBOYke hadapan
2022-01-19 17:53:562066semak imbas

Artikel ini membawa anda pengetahuan tentang rantaian skop dalam JavaScript Ruang luaran tidak boleh mengakses pembolehubah dalaman. Jadi, apakah prinsip asas untuk melaksanakan peraturan asas ini. Harap ia boleh memberi anda sedikit bantuan!

Rantaian skop, prinsip asas JavaScript (penjelasan terperinci dengan gambar dan teks)

Skop

Apakah skop

Ringkasnya, skop (Bahasa Inggeris: skop) ialah satu set peraturan untuk mencari pembolehubah mengikut nama Skop boleh difahami secara umum sebagai ruang tertutup dan tidak Ia akan memberi kesan di luar ruang tidak boleh mengakses ruang dalam, tetapi ruang dalam boleh mengakses ruang luar yang membungkusnya.

2.[[Skop]] Atribut

Dalam javascript, setiap fungsi ialah objek, dan terdapat beberapa atribut dalam objek yang kami Ia boleh diakses, tetapi sebahagian daripadanya tidak boleh diakses secara bebas oleh kami Atribut [[Skop]] adalah salah satu daripadanya Atribut ini hanya boleh dibaca oleh enjin JavaScript.

Malah, [[skop]] ialah apa yang sering kita panggil skop, yang menyimpan koleksi konteks masa jalan skop.

Di sini kerana func.prototype.constructor dan func menghala ke fungsi yang sama, jadi di sini kita melihat atribut [[Skop]] dengan mengakses objek prototaip fungsi function

Rantaian skop, prinsip asas JavaScript (penjelasan terperinci dengan gambar dan teks)

3 Koleksi objek konteks masa pelaksanaan yang disimpan dalam rantai skop

[[skop]], koleksi ini disambungkan dalam chain , kami panggil sambungan rantai ini sebagai rantai skop. JavaScript mencari pembolehubah melalui rantai skop Kaedah carian adalah untuk membuat pertanyaan ke bawah di sepanjang bahagian atas rantai skop (objek ditemui dalam fungsi dalam rantai skop fungsi)

4 . Ilustrasi prinsip mencari pembolehubah

//以如下代码为例说明JavaScript通过作用域链查找变量的原理**
function a() {
  function b() {
      var b = 123;
  }
  var a = 123;
  b();
}
var glob = 100;

1 Apabila fungsi global a() ditakrifkan, rantai skop adalah seperti berikut

Rantaian skop, prinsip asas JavaScript (penjelasan terperinci dengan gambar dan teks)

Atribut [[Skop]] fungsi menghala ke objek rantai skop Pada masa ini, rantai skop hanya mempunyai satu pasangan nilai kunci. Pasangan nilai kunci ini Menunjukkan kepada objek global Objek global menyimpan perkara yang boleh diakses secara global, iaitu skop paling luar, yang boleh diakses oleh semua orang.

2 Apabila fungsi global a() diaktifkan dan dipanggil, rantai skop adalah seperti berikut

Rantaian skop, prinsip asas JavaScript (penjelasan terperinci dengan gambar dan teks)

Pada masa ini, perkara pertama yang boleh diakses oleh rantai skop ialah pasangan nilai kunci dalam Objek Pengaktifan, objek global

3 ditakrifkan dalam fungsi a() , rantai skop b adalah seperti berikut

Rantaian skop, prinsip asas JavaScript (penjelasan terperinci dengan gambar dan teks)

Apabila b baru ditakrifkan tetapi tidak dipanggil, rantai skop bagi b adalah sama dengan a

4 Apabila fungsi b dalam fungsi a() diaktifkan dan dipanggil, rantai skop adalah seperti berikut

Rantaian skop, prinsip asas JavaScript (penjelasan terperinci dengan gambar dan teks)

Rantai skop mula-mula menghala ke Objek Pengaktifan fungsi b(). >

5. Ringkasan

Sebab skop luaran tidak boleh mengakses skop dalaman ialah rantai skop skop luaran tidak mempunyai Objek Pengaktifan skop dalaman, jadi pembolehubah dalaman tidak boleh diakses. Urutan mengakses pembolehubah dalam skop dalaman adalah mengikut Rantaian skop, mula-mula cari dari dalam, jika tidak, lihat ke luar di sepanjang rantai skop >Cadangan berkaitan: tutorial pembelajaran javascript

Atas ialah kandungan terperinci Rantaian skop, prinsip asas JavaScript (penjelasan terperinci dengan gambar dan teks). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:juejin.im. Jika ada pelanggaran, sila hubungi admin@php.cn Padam