Di dunia JavaScript, ada banyak cara untuk mendefinisikan fungsi, yang merupakan cerminan dari fleksibilitas JavaScript, tetapi alasan itulah yang membuat pemula bingung, terutama bagi siswa yang tidak memiliki fondasi bahasa. Seperti kata pepatah, semua jalan mengarah ke Roma, tetapi jika ada terlalu banyak jalan, itu akan membuat pelancong kehilangan karena dia tidak tahu jalan mana yang merupakan cara yang tepat untuk pergi. Haha, saya berbicara omong kosong, dan saya akan berbicara lebih sedikit, membaca kode terlebih dahulu:
Salinan kode adalah sebagai berikut:
/*Metode pertama menggunakan pernyataan fungsi, formatnya adalah sebagai berikut*/
fungsi fn () {
peringatan ("Ini adalah pernyataan fungsi untuk definisi fungsi");
}
fn ();
/*Metode kedua, gunakan konstruktor fungsi () untuk mengkloning fungsi*/
var f = fungsi baru ("a", "b", "alert (a+b)");
F (a, b);
Bahkan, itu setara dengan kode berikut:
fungsi f (a, b) {
waspada (a+b);
}
/*Metode ketiga adalah menggunakan fungsi untuk menghitung secara langsung*/
var zhenn = function () {
alert ("Zhen");
}
zhenn ();
Di antara mereka, metode menggunakan "pernyataan fungsi" dan menggunakan "fungsi kuantitas langsung" untuk mendefinisikan fungsi tampaknya lebih umum dan mudah dimengerti, jadi saya tidak akan mengatakan banyak tentang hal itu di sini. Ini umumnya jarang digunakan untuk mengkloning fungsi menggunakan konstruktor fungsi (), karena suatu fungsi biasanya terdiri dari beberapa pernyataan. Jika mereka dilewatkan sebagai string sebagai parameter, itu pasti akan membuat keterbacaan kode menjadi buruk.
Mari kita sebutkan konstruktor di sini. Bahkan, secara harfiah, konstruktor tampaknya menjadi fungsi. Bahkan, ini bukan fungsi, tetapi hanya model fungsi. Untuk memberikan contoh yang tidak pantas, konstruktor setara dengan mobil yang baru dirakit. Apakah itu jauh atau dekat, itu adalah mobil, tetapi belum diisi bahan bakar (mewakili langkah yang diperlukan sebelum digunakan), sehingga tidak dapat memulai. Jika Anda ingin mobil dikendarai secara normal, Anda harus menambahkan minyak ke dalamnya. Faktanya, proses ini setara dengan instantiasi konstruktor, jika tidak, ia tidak akan berjalan secara normal! Lihat contoh berikut:
Salinan kode adalah sebagai berikut:
fungsi fn () {// tentukan konstruktor
this.elem = "Ini adalah konstruktor fungsi () untuk mendefinisikan fungsi, haha";
this.fn = function () {
waspada ("Ini untuk menentukan fungsi menggunakan konstruktor fungsi (), hehe");
}
}
var f = fn baru (); // Instantiasi
peringatan (f.elem);
f.fn ();