JavaScript ialah bahasa yang mengejutkan dan memukau dengan kepelbagaian dan ciri-cirinya. Satu bahagian tersebut ialah cara fungsi bersarang mengendalikan skop pembolehubah. Sama ada anda baru bermula dengan JavaScript atau ingin meningkatkan kemahiran pengekodan anda, memahami konsep ini adalah penting untuk menguasainya.
Dalam blog ini, kita akan melihat apakah fungsi bersarang, cara skopnya berfungsi dan sebab pengetahuan ini penting. Pada akhirnya, anda akan memahami cara fungsi bersarang berinteraksi dengan pembolehubah dan kuasa penutupan.
Satu fungsi bersarang hanyalah fungsi yang ditakrifkan dalam fungsi lain. Dalam JavaScript, fungsi dalaman ini boleh mengakses pembolehubah dalam skop luar (menyertakan) mereka. Tingkah laku ini dikenali sebagai skop leksikal, atau, lebih kerap, penutupan.
Tingkah laku fungsi bersarang dipandu oleh konsep yang dikenali sebagai skop leksikal, yang bermaksud skop pembolehubah ditakrifkan mengikut tempat ia berada dalam kod sumber.
Berikut ialah peraturan utama untuk diingati tentang skop fungsi bersarang:
1️⃣ Fungsi dalaman boleh mengakses pembolehubah dari fungsi luar:
Fungsi dalaman mempunyai akses penuh kepada pembolehubah yang diisytiharkan dalam fungsi luarnya.
? Contoh:
function outerFunction(){ const outerVar = "I am from Outer Function!"; function innerFunction(){ console.log(outerVar); // Accessing `outerVar` from outer scope } innerFunction(); } outerFunction(); // Output: I am from Outer Function!
2️⃣ Fungsi luar tidak boleh mengakses pembolehubah daripada fungsi dalam:
Pembolehubah yang diisytiharkan dalam fungsi dalam adalah setempat padanya dan tidak boleh dilihat oleh fungsi luar.
? Contoh:
function outerFunction(){ function innerFunction(){ const innerVar = "I am from Inner Function"; } console.log(innerVar); // Error: Uncaught ReferenceError: innerVar is not defined innerFunction(); } outerFunction();
3️⃣ Fungsi bersarang mempunyai akses kepada skop luarnya walaupun selepas fungsi luar telah kembali
Di sinilah penutupan berlaku! Penutupan membolehkan fungsi dalam untuk "mengingat" pembolehubah skop yang disertakan, walaupun jika fungsi luar tidak lagi dalam pelaksanaan.
? Contoh:
function outerFunction() { let count = 0; return function innerFunction() { count++; console.log("count = " + count); }; } const counter = outerFunction(); for(let i=1; i <= 5; i++){ counter() } /* Output: count = 1 count = 2 count = 3 count = 4 count = 5 */
Fungsi dalaman menyimpan pembolehubah kiraan, membenarkannya menambah bilangan berbanding panggilan berulang.
Menguasai skop fungsi bersarang membuka kunci corak pengekodan yang berkuasa dan membantu anda:
Penutupan ialah konsep lanjutan yang berkait rapat dengan fungsi bersarang. Apabila fungsi dalam mengingati dan mengakses pembolehubah daripada skop luarannya selepas fungsi luar dilaksanakan, ia mewujudkan penutupan.
Buat masa ini, cuma ingat:
Penutupan membenarkan fungsi bersarang untuk "menyimpan" pembolehubah dari skop luarnya hidup.
Dalam blog seterusnya, kita akan mendalami penutupan, melihat penggunaan praktikalnya dan cara mereka menjadikan JavaScript sebagai bahasa yang begitu kuat.
Memahami skop fungsi bersarang ialah langkah penting dalam perjalanan JavaScript anda. Ia mewujudkan asas untuk memahami penutupan, privasi data dan corak pengaturcaraan lanjutan. Fungsi bersarang menyerlahkan kuasa skop leksikal JavaScript dan keupayaan untuk menjana kod yang cekap, fleksibel dan boleh digunakan semula.
Adakah anda bersedia untuk meneroka penutupan? Nantikan blog seterusnya dalam siri ini! ?
Selamat mengekod! ✨
Atas ialah kandungan terperinci Skop Fungsi Bersarang dalam JavaScript: Panduan Pemula. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!