⊗jsPmFTNFE 235 of 505 menu

Ekspresi Fungsi Bernama dalam JavaScript

Misalkan kita memiliki ekspresi fungsi seperti ini:

let test = function() { console.log('!'); }; test(); // akan menampilkan '!'

Mari kita beri nama func untuk fungsi kita:

let test = function func() { console.log('!'); }; test();

Seperti yang sudah Anda ketahui, tidak dapat mengakses fungsi dengan nama ini:

let test = function func() { console.log('!'); }; test(); // akan menampilkan '!' func(); // akan menghasilkan error

Lalu untuk apa memberi nama fungsi jika tidak akan dapat diakses? Masalahnya adalah, nama ini tidak akan dapat diakses dari luar fungsi, tetapi dapat diakses di dalam fungsi itu sendiri.

Mari kita buktikan:

let test = function func() { console.log(func); // fungsi akan menampilkan kode sumbernya sendiri }; test(); // memanggil fungsi

Mari kita panggil fungsi kita di dalam dirinya sendiri:

let test = function func() { console.log('!'); // menampilkan '!' func(); // memanggil diri sendiri }; test();

Jika kode ini dijalankan, maka akan menampilkan output ke konsol dalam jumlah tak terbatas.

Sebenarnya, fungsi kita dapat dipanggil di dalam dirinya sendiri tidak hanya sebagai func, tetapi juga sebagai test:

let test = function func() { console.log('!'); test(); // memanggil diri sendiri }; test();

Lalu apa perbedaannya? Perbedaannya adalah nama test hanyalah sebuah variabel. Dalam proses kerja skrip, fungsi kita mungkin ditulis ke variabel lain atau diteruskan sebagai parameter - dalam hal ini, hubungan antara variabel test dan fungsi bisa terputus.

Nama func secara kaku terikat ke fungsi khusus untuk memungkinkan akses ke fungsi kita di dalam dirinya sendiri.

Function Expression dengan nama fungsi seperti ini disebut ekspresi fungsi bernama.

Indonesia
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan cookie untuk operasi situs, analitik, dan personalisasi. Pemrosesan data dilakukan sesuai dengan Kebijakan Privasi.
terima semua atur tolak