Bercakap tentang perkara di atas dalam ECMAScript, saya fikir perkara yang paling menarik ialah fungsi Sebab mengapa ia menarik ialah fungsi itu sebenarnya objek. Setiap fungsi ialah contoh jenis Fungsi dan mempunyai sifat dan kaedah yang sama seperti jenis rujukan lain. Oleh kerana fungsi adalah objek, nama fungsi sebenarnya adalah penunjuk kepada objek fungsi dan tidak akan terikat pada fungsi. Fungsi biasanya ditakrifkan menggunakan sintaks pengisytiharan fungsi, seperti dalam contoh berikut:
Ini hampir sama dengan cara di bawah untuk mentakrifkan fungsi menggunakan ungkapan fungsi.
Kod di atas menentukan jumlah pembolehubah dan memulakannya sebagai fungsi. Anda akan melihat bahawa tiada nama fungsi selepas kata kunci fungsi. Ini kerana apabila mentakrifkan fungsi menggunakan ungkapan fungsi, tidak perlu menggunakan nama fungsi (fungsi boleh dirujuk melalui jumlah pembolehubah). Juga, ambil perhatian bahawa terdapat koma bertitik di hujung fungsi, sama seperti semasa mengisytiharkan pembolehubah lain.
Cara terakhir untuk mentakrifkan fungsi ialah menggunakan pembina Fungsi. Pembina Fungsi boleh menerima sebarang bilangan parameter, tetapi parameter terakhir sentiasa dianggap sebagai badan fungsi, dan parameter sebelumnya menghitung parameter fungsi baharu. Contoh di bawah:
Dari sudut teknikal, ini adalah ungkapan fungsi. Walau bagaimanapun, kami tidak mengesyorkan menggunakan kaedah ini untuk mentakrifkan fungsi kerana sintaks ini menyebabkan kod dihuraikan dua kali (pertama untuk menghuraikan kod ECMAScript biasa dan kedua untuk menghuraikan rentetan yang dihantar ke dalam pembina), yang mempengaruhi prestasi . Walau bagaimanapun, sintaks ini sangat intuitif untuk memahami konsep "fungsi adalah objek dan nama fungsi adalah penunjuk".
Memandangkan nama fungsi hanyalah penunjuk kepada fungsi, nama fungsi tidak berbeza daripada pembolehubah lain yang mengandungi penunjuk objek. Dalam erti kata lain, fungsi mungkin mempunyai berbilang nama, seperti dalam contoh berikut:
Kod di atas mula-mula mentakrifkan fungsi bernama sum(), yang digunakan untuk mencari jumlah dua nilai. Kemudian, pembolehubah anotherSum diisytiharkan dan ditetapkan kepada sum() kesamaan (menyerahkan nilai jumlah kepada anotherSum). Ambil perhatian bahawa menggunakan nama fungsi tanpa kurungan mengakses penuding fungsi, bukan memanggil fungsi. Pada ketika ini, anotherSum dan sum menghala ke fungsi yang sama, jadi anotherSum() juga boleh dipanggil dan mengembalikan hasilnya. Walaupun jumlah ditetapkan kepada null, "memutuskan" ia daripada fungsi, ia masih terbukti normal untuk memanggil anotherSum().
Di atas adalah keseluruhan kandungan artikel ini, saya harap ia akan membantu semua orang yang belajar javascript.