Rumah > hujung hadapan web > tutorial js > Penjelasan terperinci tentang kaedah panggilan dan penulisan fungsi tanpa nama dalam Javascript (pelbagai jenis)_kemahiran javascript

Penjelasan terperinci tentang kaedah panggilan dan penulisan fungsi tanpa nama dalam Javascript (pelbagai jenis)_kemahiran javascript

WBOY
Lepaskan: 2016-05-16 15:17:57
asal
1166 orang telah melayarinya

Terdapat banyak cara untuk mentakrifkan fungsi dalam Javascript, dan literal fungsi adalah salah satu daripadanya. Contohnya, var fun = function(){}, jika fungsi tidak diberikan kepada fun, maka ia adalah fungsi tanpa nama. Okey, mari kita lihat bagaimana fungsi tanpa nama dipanggil.

Kaedah 1, panggil fungsi dan dapatkan nilai pulangan. Pengendali paksaan menyebabkan panggilan fungsi untuk melaksanakan

(function(x,y){
alert(x+y);
return x+y;
}(3,4)); 
Salin selepas log masuk

Kaedah 2, panggil fungsi dan dapatkan nilai pulangan. Paksa fungsi untuk dilaksanakan secara langsung dan kemudian kembalikan rujukan, dan kemudian rujukan dipanggil dan dilaksanakan

(function(x,y){
alert(x+y);
return x+y;
})(3,4); 
Salin selepas log masuk

Kaedah ini juga merupakan kaedah panggilan kegemaran yang digunakan oleh banyak perpustakaan, seperti jQuery dan Mootools.

Kaedah 3, gunakan void

void function(x) {
x = x-1;
alert(x);
}(9);
Salin selepas log masuk

Kaedah 4, gunakan -/ operator

-function(x,y){
alert(x+y);
return x+y;
}(3,4);
+function(x,y){
alert(x+y);
return x+y;
}(3,4);
--function(x,y){
alert(x+y);
return x+y;
}(3,4);
++function(x,y){
alert(x+y);
return x+y;
}(3,4); 
Salin selepas log masuk

Kaedah 5, gunakan tilde (~)

~function(x, y) {
alert(x+y);
return x+y;
}(3, 4); 
Salin selepas log masuk

Kaedah 6, pelaksanaan fungsi tanpa nama diletakkan dalam kurungan segi empat sama

[function(){
console.log(this) // 浏览器得控制台输出window
}(this)] 
Salin selepas log masuk

Kaedah 7, tambah jenis

sebelum fungsi tanpa nama
typeof function(){
console.log(this) // 浏览器得控制台输出window
}(this) 
Salin selepas log masuk

Kaedah 8, tambah padam

sebelum fungsi tanpa nama
delete function(){
console.log(this) // 浏览器得控制台输出window
}(this) 
Salin selepas log masuk

Kaedah 9, tambah kekosongan

sebelum fungsi tanpa nama
void function(){
console.log(this) // 浏览器得控制台输出window
}(this) 
Salin selepas log masuk

Kaedah 10, gunakan kaedah baharu untuk lulus parameter

new function(win){
console.log(win) // window
}(this) 
Salin selepas log masuk

Kaedah 11, gunakan baharu, jangan lulus parameter

new function(){
console.log(this) // 这里的this就不是window了
} 
Salin selepas log masuk

Kaedah 12, pengendali koma

 function(){
console.log(this) // window
}(); 
Salin selepas log masuk

Mod 13, pengendali XOR bitwise

^function(){
console.log(this) // window
}(); 
Salin selepas log masuk

Kaedah 14, pengendali perbandingan

function(){
console.log(this) // window
}(); 
Salin selepas log masuk

Akhirnya lihat kaedah panggilan yang salah

function(x,y){
alert(x+y);
return x+y;
}(3,4); 
Salin selepas log masuk

N cara menulis fungsi tanpa nama adalah seperti berikut

Fungsi tanpa nama tidak mempunyai nama sebenar dan tiada petunjuk Bagaimana untuk melaksanakannya?

Mengenai cara menulis fungsi tanpa nama, ia sangat berbeza~

Tanda

menukar pengisytiharan fungsi kepada ungkapan fungsi. Ringkaskannya

Penggunaan paling biasa:

Kod adalah seperti berikut:

(function() { 
alert('water'); 
})(); 
Salin selepas log masuk

Sudah tentu, anda juga boleh mengambil parameter:

Kod adalah seperti berikut:

(function(o) { 
alert(o); 
})('water'); 
Salin selepas log masuk

Mahu menggunakan panggilan berantai bagi fungsi tanpa nama? Sangat mudah:

Kod adalah seperti berikut:

(function(o) { 
console.log(o); 
return arguments.callee; 
})('water')('down'); 
Salin selepas log masuk

Kita semua tahu fungsi tanpa nama biasa, mari kita lihat fungsi yang tidak biasa:

Kod adalah seperti berikut:

~(function(){ 
alert('water'); 
})();//写法有点酷~ 
Salin selepas log masuk

Kod adalah seperti berikut:

void function(){ 
alert('water'); 
}();//据说效率最高~ 
Salin selepas log masuk

Kod adalah seperti berikut:

+function(){ 
alert('water'); 
}(); 
Salin selepas log masuk

Kod adalah seperti berikut:

-function(){ 
alert('water'); 
}();
Salin selepas log masuk

Kod adalah seperti berikut:

~function(){ 
alert('water'); 
}();
Salin selepas log masuk

Kod adalah seperti berikut:

!function(){ 
alert('water'); 
}(); 
Salin selepas log masuk

Kod adalah seperti berikut:

(function(){ 
alert('water'); 
}());//有点强制执行的味道~
Salin selepas log masuk

Di atas telah berkongsi dengan anda cara memanggil dan menulis fungsi tanpa nama dalam Javascript. Saya harap ia akan membantu anda.

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