JavaScript memungkinkan pengembang untuk mendefinisikan fungsi di dalam fungsi lain, sebuah teknik yang dikenal sebagai fungsi bersarang. Fungsi bersarang dapat berguna dalam berbagai situasi, termasuk mengatur kode ke dalam blok logis, meningkatkan keterbacaan fungsi besar, dan membuat metode pribadi yang hanya dapat diakses di dalam fungsi yang memuatnya. Show
Pada artikel ini, kita akan menjelajahi dasar-dasar fungsi bersarang di JavaScript, termasuk sintaksnya, perbedaannya dari fungsi tradisional, dan cara menggunakannya secara efektif dalam kode Anda
Menggunakan fungsi bersarang di JavaScriptDalam JavaScript, suatu fungsi dapat didefinisikan di dalam fungsi lain. Fungsi seperti itu disebut fungsi bersarang atau fungsi dalam. Fungsi bersarang memiliki akses ke variabel dan parameter fungsi luar, serta ke variabel dan fungsi global. Mereka dapat digunakan untuk mengatur dan menyusun kode Anda, dan untuk menghindari konflik penamaan
Fungsi orang tua dan anakKita dapat memiliki fungsi bersarang di mana kita memiliki fungsi induk - fungsi luar - dan fungsi anak - fungsi dalam - di mana fungsi Berikut adalah contoh fungsi bersarang di JavaScript di mana kita menambahkan satu ke argumen fungsi luar dan
Keluaran 4
_Dalam contoh ini, fungsi luar 4
0, yang mengambil argumen tunggal 4
1 dan mendefinisikan variabel lokal 4
2. Fungsi dalam mengembalikan nilai 4
_2Fungsi luar mengembalikan fungsi dalam sebagai hasilnya. Ini berarti bahwa fungsi dalam adalah penutupan, yaitu fungsi yang mempertahankan akses ke variabel dan parameter fungsi luar bahkan setelah fungsi luar menyelesaikan eksekusinya. BACA JUGA. Telusuri di Objek JSON Secara Rekursif di JavaScript [SOLVED] Untuk memanggil fungsi dalam, Anda perlu memanggil fungsi luar terlebih dahulu, lalu memanggil fungsi dalam sebagai properti dari hasil fungsi luar. Ini dikenal sebagai metode chaining Iklan Pada contoh di atas, kita memanggil fungsi luar dengan argumen 4
4, lalu memanggil fungsi dalam sebagai properti dari hasil fungsi luar, dengan argumen 4
5. Fungsi dalam menghitung nilai 4
2 sebagai 4
7, dan mengembalikan hasilnya
Fungsi tingkat yang samaKita dapat memiliki banyak fungsi dalam lingkungan JavaScript tertentu atau tingkat cakupan global, dan kita mungkin perlu memanggil salah satu fungsi tersebut di dalam fungsi lain. Untuk menggambarkan hal ini, kita dapat membuat tiga fungsi - 4
8, 4
9 dan 0 - dan menyertakan 4
8 dan 4
9 dalam fungsi 0 meskipun, semuanya berada dalam lingkup global yang sama
Keluaran 2548.0396799999994
Dalam kode ini, fungsi 4
8 dan 4
9 bersarang di dalam fungsi 0. Ini berarti bahwa mereka hanya tersedia dalam lingkup fungsi 0 dan tidak dapat dipanggil dari luarnya. Meskipun, semua fungsi berada dalam level yang sama, kami dapat memiliki fungsi bersarang dengan memanggilnya dalam suatu fungsiBACA JUGA. Menggunakan try catch finally di Node. js [Praktik Terbaik]
Fungsi anonim batinPendekatan lain yang dapat kita lihat dengan fungsi bersarang di JavaScript menggunakan fungsi anonim di dalam suatu fungsi. Fungsi anonim akan berfungsi sebagai fungsi dalam di dalam fungsi luar. Untuk lebih memahami, mari kita ilustrasikan fungsi luar - 8 - yang menggunakan argumen 9, dan di dalam fungsi ini kita memiliki fungsi anonim yang menggunakan
Keluaran 0.6
Kode ini menunjukkan penggunaan fungsi bersarang, di mana fungsi anonim dalam didefinisikan dan dikembalikan oleh fungsi 2548.0396799999994
0 luar. Fungsi dalam memiliki akses ke variabel dalam fungsi luar, dalam hal ini, variabel 9. Ini dikenal sebagai penutupan
Bagaimana nesting memengaruhi ruang lingkup?Fungsi yang ditentukan di tingkat atas kode Anda memiliki cakupan global, sedangkan fungsi yang ditentukan di dalam fungsi lain memiliki cakupan lokal. Mari kita periksa contoh ini Iklan
Mari visualisasikan ini sebagai gambar untuk memahami dampak ruang lingkup Di sini semua yang didefinisikan di tingkat atas kode memiliki cakupan global. Jadi 2548.0396799999994
_2 dan 2548.0396799999994
3 keduanya adalah variabel global. Tapi ingat 2548.0396799999994
_2 didefinisikan hanya setelah ekspresi fungsi 2548.0396799999994
5 dievaluasiBACA JUGA. Contoh Metode pop Array JavaScript 2548.0396799999994
6 didefinisikan oleh deklarasi fungsi dalam fungsi 2548.0396799999994
2. Jadi ruang lingkupnya adalah keseluruhan fungsi dan didefinisikan di seluruh 2548.0396799999994
2 badan fungsi2548.0396799999994
_9 didefinisikan oleh ekspresi fungsi dalam fungsi 2548.0396799999994
3. Jadi ruang lingkupnya adalah keseluruhan 2548.0396799999994
_3 fungsi tetapi itu ditentukan hanya setelah ekspresi fungsi dievaluasi hingga akhir badan fungsiPerhatikan bahwa aturan kapan Anda bisa merujuk ke suatu fungsi adalah sama di dalam suatu fungsi seperti di tingkat atas. Artinya, dalam suatu fungsi, jika Anda menentukan fungsi bertingkat dengan 2, fungsi bertingkat tersebut ditentukan di mana saja di dalam isi fungsi. Di sisi lain, jika Anda membuat fungsi bertingkat menggunakan 3, maka fungsi bertingkat tersebut ditentukan hanya setelah ekspresi fungsi dievaluasi
RingkasanFungsi bersarang dapat berguna dalam beberapa situasi. Misalnya, Anda dapat menggunakannya untuk membuat fungsi utilitas yang hanya diperlukan dalam konteks tertentu. Anda juga dapat menggunakannya untuk mengenkapsulasi logika kompleks dan menyembunyikannya dari kode lainnya Iklan Perlu diingat bahwa fungsi bersarang dapat berdampak negatif pada kinerja kode Anda karena membuat cakupan baru dan menambahkan overhead ke pemanggilan fungsi. Anda harus menggunakannya dengan bijaksana dan hanya jika diperlukan BACA JUGA. Hapus Elemen dari Set di JavaScript [SOLVED] Fungsi bersarang dapat membantu Anda mengatur dan menyusun kode Anda, dan dapat memberikan cara ampuh untuk membuat penutupan dan merangkum logika kompleks Bisakah fungsi dalam mengakses variabel luar?Fungsi Inti Python atau Fungsi Bersarang dapat mengakses variabel fungsi luar serta variabel global.
Bisakah fungsi JavaScript mengakses variabel luar?Variabel yang dideklarasikan secara Global (di luar fungsi apa pun) memiliki Cakupan Global . Variabel global dapat diakses dari mana saja dalam program JavaScript. Variabel yang dideklarasikan dengan var , let dan const sangat mirip ketika dideklarasikan di luar blok.
Bisakah Anda mengakses variabel di dalam fungsi JavaScript?Karena javascript, dan sebagian besar bahasa, variabel cakupan, Anda tidak dapat mengakses variabel yang dideklarasikan di dalam fungsi dari luar fungsi . Variabel milik ruang lingkup fungsi saja, bukan ruang lingkup global. Untungnya, fungsi mewarisi ruang lingkup pemanggilnya.
Bisakah Anda mengakses variabel di dalam suatu fungsi?Dalam Python dan sebagian besar bahasa pemrograman, variabel yang dideklarasikan di luar fungsi dikenal sebagai variabel global. Anda dapat mengakses variabel tersebut di dalam dan di luar fungsi, karena memiliki cakupan global . |