⊗jsPmFTNFE 235 of 505 menu

Ungkapan Fungsian Bernama dalam JavaScript

Katakan kita mempunyai ungkapan fungsian seperti berikut:

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

Mari kita beri nama func kepada fungsi kita:

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

Seperti yang anda sudah tahu, anda tidak boleh mengakses fungsi melalui nama ini:

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

Apakah gunanya memberi nama kepada fungsi jika ia tidak akan boleh diakses? Hakikatnya, nama ini tidak boleh diakses dari luar fungsi, tetapi boleh diakses di dalam fungsi itu sendiri.

Mari kita uji:

let test = function func() { console.log(func); // fungsi akan output kod sumbernya sendiri }; test(); // panggil fungsi

Mari kita panggil fungsi kita di dalamnya sendiri:

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

Jika kod ini dijalankan, output yang tidak terhingga akan dipaparkan ke konsol.

Sebenarnya, fungsi kita boleh dipanggil di dalamnya sendiri bukan sahaja sebagai func, tetapi juga sebagai test:

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

Apakah perbezaannya? Perbezaannya ialah nama test hanyalah sebuah pembolehubah. Semasa skrip berjalan, fungsi kita mungkin ditulis kepada pembolehubah lain atau dihantar sebagai parameter - dalam kes ini, sambungan antara pembolehubah test dan fungsi mungkin terputus.

Namun, nama func diikat secara tegar kepada fungsi khusus untuk membolehkan akses kepada fungsi kita dari dalamnya sendiri.

Function Expression sedemikian dengan nama fungsi dipanggil ungkapan fungsian bernama.

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