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
Nota: Number undefined=undefined
function f1(n1,n2,n3){ alert(n1-n2+n3); } f1(10,2); //NaN,因为没有给n3传值,n3就是undefined, //数字加上undefined还是undefined
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.
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 namaMari kita lihat dahulu contoh memberikan kaedah tanpa nama kepada pembolehubah:
var ff=function(n1,n2){ return n1+n2; }; alert(ff(20,30));//50
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
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