Jenis fungsi dalam kemahiran ECMAScript_javascript

WBOY
Lepaskan: 2016-05-16 15:57:07
asal
1253 orang telah melayarinya

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:

Salin kod Kod adalah seperti berikut:

fungsi sum(num1,num2)
{
Kembalikan nombor1 nombor2;
}

Ini hampir sama dengan cara di bawah untuk mentakrifkan fungsi menggunakan ungkapan fungsi.

Salin kod Kod adalah seperti berikut:

var sum=function(num1,num2)
{
Kembalikan nombor1 nombor2;
};

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:

Salin kod Kod adalah seperti berikut:

var sum=new Function("num1","num2","return num1 num2");//Tidak disyorkan

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:

Salin kod Kod adalah seperti berikut:

fungsi sum(num1,num2)
{
Kembalikan nombor1 nombor2;
}
makluman(jumlah(10,10));//20
var anotherSum=sum;
makluman(jumlah lain(10,10));//20
sum=null;
makluman(jumlah lain(10,10));//20

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.

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan