Rumah  >  Artikel  >  hujung hadapan web  >  Penjelasan terperinci tentang kaedah dan contoh kaedah tanpa nama dalam kemahiran Javascript_javascript

Penjelasan terperinci tentang kaedah dan contoh kaedah tanpa nama dalam kemahiran Javascript_javascript

WBOY
WBOYasal
2016-05-16 15:55:071129semak imbas

Contoh dalam artikel ini menerangkan kaedah dan kaedah tanpa nama dalam Javascript. Kongsikan dengan semua orang untuk rujukan anda. Analisis khusus adalah seperti berikut:

Kaedah Javascript (fungsi)

Fungsi pengisytiharan

Bermula dengan fungsi, diikuti dengan nama fungsi Tidak seperti C# dan Java, Javascript tidak perlu mengisytiharkan jenis nilai pulangan dan jenis parameter. Tiada nilai pulangan tidak ditentukan.

Contoh akan menjadikannya lebih jelas:
Kaedah tanpa parameter dan tiada nilai pulangan:

function f1(){
alert('这是一个方法');
}
f1();//调用方法 

Kaedah tanpa parameter dan nilai pulangan:

function f2(){
return 100;
}
var result=f2();//声明一个变量,接收f1()中的返回值
alert(result);//100 

Kaedah dengan parameter dan nilai pulangan:

function f3(n1,n2){
return n1+n2;
}
var result=f3(20,30);
alert(result);//50

Nota 1:

Lihat contoh dahulu:

function f1(){
  alert('这是一个方法'); 
}
alert(f1());//弹出”这是一个方法”后,还会显示undefined

Sebab: Dalam js, jika pembolehubah tidak diberikan nilai, ia tidak ditentukan dalam kes ini, f1() tidak mempunyai nilai pulangan, jadi ia adalah nilai yang tidak diketahui (tidak ditakrifkan di sini). alert(), dan sudah tentu pop timbul tidak ditentukan

Nota 2:

alert(f1);//不写括号,会将f1整个代码以字符串形式显示出来:
function f1(){ 
alert('这是一个方法'); 
} 

Tiada kaedah terlebih beban dalam JavaScript

Hanya panggil kaedah yang ditakrifkan terkini:

function f1(n1,n2){ 
alert(n1+n2); 
} 
function f1(n1,n2){ 
alert(n1-n2); 
} 
f1(10,2);//8

Kesimpulan: Tidak kira di mana ia dipanggil, hanya kaedah yang ditakrifkan terkini dipanggil.

Nota: Number undefined=undefined

function f1(n1,n2,n3){ 
alert(n1-n2+n3); 
} 
f1(10,2);
//NaN,因为没有给n3传值,n3就是undefined,
//数字加上undefined还是undefined

Kesimpulan di atas: Tiada kaedah lebihan beban dalam Javascript

Perhatikan apabila mentakrifkan kaedah:

Tidak mempunyai nama fungsi tersuai yang sama dengan kaedah terbina dalam:

Jangan gunakan nama yang sama dengan kaedah terbina dalam dalam JS atau DOM Contohnya, jangan gunakan nama fungsi seperti pilihSemua dan fokus.

Tidak mempunyai nama yang sama dengan fungsi sistem. (Terdapat masalah apabila memanggil kaedah fokus yang ditentukan anda sendiri dalam acara klik. Ia mempunyai nama yang sama dengan kaedah fokus() sistem)

Nota tentang menulis kurungan peraturan:

Secara amnya apabila menulis pendakap kerinting dalam js, mereka diikuti terus dengan

function f1(){ 
return 
{ 
age:100}; 
} 
var s=f1(); 
alert(s.age);
//undefined。s结果是undefined,undefined.age必然还是undefined

Kaedah tanpa nama (banyak digunakan)

Mengapa disyorkan untuk menggunakan kaedah tanpa nama?

1. Terdapat fungsi kaedah aa(){alert{'Saya agak kacak'}} dalam 1.js

2. Terdapat fungsi kaedah aa(){alert{'saya semakin kacak'}} dalam 2.js

3. Import 1.js dan 2.js ke dalam index.html dalam urutan, dan panggil aa();

Kesimpulan: Kaedah aa() dalam 2.js akan mengatasi aa() dalam 1.js

Apa yang perlu dilakukan? Tidak lagi menyatakan nama kaedah, gunakan kaedah tanpa nama

Mari kita lihat dahulu contoh memberikan kaedah tanpa nama kepada pembolehubah:

var ff=function(n1,n2){ 
return n1+n2; 
}; 
alert(ff(20,30));//50

Tulis kaedah tanpa nama dalam satu baris:


Salin kod Kod adalah seperti berikut:
(fungsi (n1,n2){alert(n1 n2);} )(9 ,9);
Kes kecil: 1:

var x=1; 
var y=0; 
var z=0; 
var add=function (n){n=n+1;return n}; 
y=add(x);//结果是2,先调用上面add 
add=function(n){n=n+3;return n;}; 
z=add(x);//结果是4,调用上面临近的这个add 
alert(y+','+z);//2,4

Kes kecil 2:

function aa() 
{ 
  alert("aaa"); 
  return function(){alert("bbb");}; 
} 
alert(aa);//不写括号,会将aa方法的整个代码显示出来 
alert(aa());//aaa,function(){alert("bbb");}; aaa就不解释了,后面那一串是作为aa()的返回值显示 
alert(aa()());//aaa,bbb,undefined 
//下面分解上面这句进行解释 
var s=aa();//aaa 
alert(s());//s()就是function(){alert("bbb");};首先弹出bbb,其次该方法没有返回值,故弹出undefined

Saya harap artikel ini akan membantu reka bentuk pengaturcaraan JavaScript semua orang.

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