Rumah  >  Artikel  >  hujung hadapan web  >  Ringkasan pelbagai kaedah panggilan fungsi yang dinamakan dalam kemahiran JavaScript_javascript

Ringkasan pelbagai kaedah panggilan fungsi yang dinamakan dalam kemahiran JavaScript_javascript

WBOY
WBOYasal
2016-05-16 16:32:071563semak imbas

Artikel sebelumnya menyebut Berbilang cara untuk memanggil fungsi tanpa nama. Artikel ini melihat pelbagai cara untuk memanggil fungsi bernama.

1, ()

Operator yang paling biasa digunakan ialah () operator untuk memanggil/melaksanakan fungsi:

Salin kod Kod adalah seperti berikut:

// Keseronokan fungsi tanpa parameter1
fungsi fun1() {
alert('Saya telah dipanggil');
}
fun1();

// Fungsi berparameter fun2
fungsi fun2(param) {
makluman(param);
}
fun2('Saya dipanggil');

Selepas ECMAScript3 menambah panggilan dan memohon pada Fungsi, terdapat dua jenis berikut.

2. panggil

Salin kod Kod adalah seperti berikut:

// Keseronokan fungsi tanpa parameter1
fungsi fun1() {
alert('Saya telah dipanggil');
}
fun1.call(null);

// Fungsi berparameter fun2
fungsi fun2(param) {
makluman(param);
}
fun2.call(null,'saya dipanggil')

3. memohon

Salin kod Kod adalah seperti berikut:

// Keseronokan fungsi tanpa parameter1
fungsi fun1() {
alert('Saya telah dipanggil');
}
fun1.apply(null);

// Fungsi berparameter fun2
fungsi fun2(param) {
makluman(param);
}
fun2.apply(null,['Saya dipanggil'])

Walaupun panggilan dan gunakan boleh digunakan semata-mata untuk memanggil/melaksanakan fungsi, ia lebih digunakan untuk menukar konteks pelaksanaan fungsi.

4. baru (kaedah ini tidak disyorkan)

Salin kod Kod adalah seperti berikut:

// Keseronokan fungsi tanpa parameter1
fungsi fun1() {
alert('Saya telah dipanggil');
}
keseronokan baharu1();

// Fungsi berparameter fun2
fungsi fun2(param) {
makluman(param);
}
baru seronok2('saya dipanggil')

Intipati baharu ialah mencipta/membina instance kelas. Fun1 dan fun2 yang ditakrifkan di sini jelas bukan kelas (bukan ini, tiada prototaip). Tetapi kedua-dua fungsi telah dilaksanakan. Ini adalah kesan sampingan yang baru.

Daripada kaedah panggilan di atas, tiada perbezaan dalam hasil pelaksanaan keempat-empat kaedah tersebut. Tetapi jika fungsi itu mempunyai nilai pulangan, anda mungkin sedikit kecewa apabila memanggilnya dengan yang baru.

Salin kod Kod adalah seperti berikut:

// Function fun
dengan nilai pulangan fun function() {
alert('Saya telah dipanggil');
Kembalikan "jack";
}
var c = keseronokan baharu();
alert(c);//[objek Objek], mengapa tidak "jack"?

Tukar kepada ini

Salin kod Kod adalah seperti berikut:

// Function fun
dengan nilai pulangan fun function() {
alert('Saya telah dipanggil');
Kembalikan {name:'jack'};
}
var c = keseronokan baharu();
alert(c.name); //jack, dikembalikan seperti biasa

Untuk meringkaskan: apabila memanggil fungsi menggunakan kaedah baharu. Jika terdapat nilai pulangan, apabila nilai pulangan adalah jenis terbina dalam (jenis asas) JavaScript seperti String, Number, Boolean, dll., nilai itu tidak akan dikembalikan apabila nilai pulangan adalah objek, the function , array dan jenis objek lain, objek, fungsi, tatasusunan akan dikembalikan secara langsung.

Apabila nilai pulangan ialah jenis terbina dalam (jenis asas), apakah sebenarnya yang dikembalikan fun() baru? Artikel seterusnya akan membincangkan butiran panggilan kaedah baharu.

Kenyataan:
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