Artikel ini merangkum masalah umum dalam definisi fungsi JavaScript. Ini berisi kesalahan umum yang dilakukan oleh pemula. Bagikan untuk referensi Anda. Ringkasan spesifiknya adalah sebagai berikut:
1. Pada saat yang sama dengan deklarasi fungsi, mesin JS juga mendefinisikan variabel dengan nama yang sama dengan nama fungsi. Ketika kami menyebut fungsi ini, kami sebenarnya menggunakan variabel ini, dan dapat dipanggil sebelum deklarasi fungsi, misalnya
foo (); // variabel fungsi sebenarnya digunakan di sini fungsi foo () {waspada ('hello'); }2. Ekspresi fungsi, pada saat ini, fungsi anonim ditugaskan ke variabel, yang perlu digunakan setelah definisi, misalnya
foo (); // Kesalahan dilaporkan, var foo = fungsi yang tidak terdefinisi () {alert ('hello'); }3. Ekspresi fungsi (dengan nama fungsi), penggunaan ini sebaiknya dihindari. Pada saat ini, nama fungsi hanya tersedia secara internal di browser non -e, misalnya
bar (5); // Kesalahan dilaporkan, var bar tidak terdefinisi = fungsi foo (n) {if (n == 1) return 1; lain return n * foo (n - 1); } foo (5); // Tidak IE kesalahan dilaporkan, bilah yang tidak ditentukan (5); //Benar4. Definisi dengan konstruktor fungsi, metode ini tidak efisien. Setiap kali suatu fungsi dieksekusi, bodi fungsinya akan diuraikan sekali. Selain itu, fungsi yang dinyatakan dengan cara ini tidak akan mewarisi ruang lingkup lokasi yang dinyatakan saat ini. Ini hanya akan memiliki ruang lingkup global secara default, misalnya
function foo () {var bar = 'hello'; fungsi pengembalian ('peringatan (bar)'); // Kesalahan dilaporkan, bilah variabel global tidak ditentukan} foo () ();Saya percaya bahwa deskripsi dalam artikel ini memiliki nilai referensi tertentu untuk pembelajaran semua orang tentang pemrograman web JavaScript.