Jika Anda perlu membuat fungsi dalam JavaScript, ada dua metode: Deklarasi Fungsional, Ekspresi Fungsi, setiap tulisan adalah sebagai berikut:
// metode 1: deklarasi fungsional foo () {} // metode 2: ekspresi fungsi var foo = fungsi () {};Selain itu, ada ekspresi fungsi yang dieksekusi sendiri, yang terutama digunakan untuk membuat ruang lingkup baru.
(function () {// var x = ...}) ();Ekspresi fungsi yang dieksekusi sendiri ini diklasifikasikan sebagai metode kedua dari dua metode di atas, yang juga dapat dianggap sebagai ekspresi fungsional.
Metode 1 dan Metode II membuat fungsi dan menamainya FOO, tetapi ada perbedaan antara keduanya. Ada mekanisme yang ada dalam penerjemah JavaScript yang dipromosikan (mengangkat), yang berarti bahwa pernyataan variabel (fungsi) akan dipromosikan ke garis depan ruang lingkup.
Misalnya, segmen kode berikut:
alert (foo); // fungsi bar_fn () {}Hasil output adalah fungsi foo () {}, tidak terdefinisi, fungsi foo () {}, dan fungsi bar_fn () {}.
Dapat dilihat bahwa pernyataan Foo ditulis setelah waspada, dan masih dapat dipanggil dengan benar karena juru bahasa JavaScript akan menaikkannya ke peringatan depan, dan bilah fungsi yang dibuat oleh ekspresi fungsi tidak menikmati perawatan ini.
Jadi apakah bar ditingkatkan?
Oleh karena itu, urutan kode mesin JavaScript di atas mungkin seperti ini:
Catatan:
Secara tegas, jika Anda membuat fungsi di JavaScript, ada metode lain, yang disebut "Metode Struktur Fungsi":
var foo = function ('alert ("hai!");'); Metode ini menggunakan string sebagai parameter untuk membentuk tubuh fungsi. Namun, dalam metode ini, efisiensi eksekusi akan didiskon, dan tampaknya parameter tidak dapat dilewati, sehingga lebih baik menggunakan lebih sedikit.