Jenis fungsi
Jenis fungsi sudah pasti merupakan perkara yang sangat penting dalam js.
1. Perkara ini pertama sekali adalah objek, yang bermaksud ia adalah jenis rujukan. Pernyataan: Apabila saya mendengar bahawa ia adalah objek, saya mempunyai ilusi bahawa kelas asasnya ialah objek
Ia dan objek adalah dua perkara yang bebas. Apabila anda menaip fungsi, apa yang dikembalikan ialah funciton bukan objek2. Setiap fungsi ialah contoh objek Fungsi, yang mempunyai sifat dan kaedah yang sama seperti objek rujukan lain. Oleh kerana ia adalah objek, nama fungsi ialah penunjuk kepada objek fungsi
Sokongan sintaks untuk pengisytiharan fungsi:
<script> //方式1 function fun(num1,num2){ return num1+num2; } //方式2 var fun=function(num1,num2){ return num1+num2; }; //方式3 var fun=new Function("n1","n2","return n1+n2"); </script>
Kaedah 1 difahami sebagai pengisytiharan fungsi, dan kaedah 2 dan 3 difahami sebagai ungkapan fungsi. (Kaedah 3 tidak disyorkan kerana ia akan menyebabkan kod dihuraikan dua kali. Pertama, kod ECMAScript biasa ditafsirkan, dan kemudian parameter masuk ditafsirkan. Ini
Menulis, bilangan parameter boleh N, tetapi parameter terakhir dianggap sebagai badan fungsi)
Sebab utama mengapa ia berbeza ialah parser js menghuraikan pengisytiharan fungsi dan ungkapan fungsi secara berbeza. Penghurai akan membaca pengisytiharan fungsi dahulu, dan enjin js secara automatik akan meletakkan pengisytiharan fungsi di bahagian atas persekitaran pelaksanaan semasa pelaksanaan.
Ungkapan fungsi berbeza Apabila ungkapan fungsi dilaksanakan, ia sebenarnya akan ditafsir dan dilaksanakan. Adalah penting untuk memahami perkara ini!
Lihat kod
<script> console.log(typeof fun); //"function" console.log(typeof fun2); //"undefined" console.log(typeof fun3); //"undefined" function fun(n1,n2){ return n1+n2; } var fun2=function(n1,n2){ return n1+n2; } var fun3=new Function("n1","n2","return n1+n2;"); </script>
Isu ini harus dipertimbangkan dari ciri bahasa js. Seperti yang dinyatakan dalam Perkara 2, nama fungsi hanyalah penunjuk kepada objek fungsi. Ia akan menjadi jelas jika anda memahaminya berdasarkan konsep penunjuk.
Lihat contoh kod:
<script> function fun(n1){ return n1+100; } function fun(n1){ return n1+200; } console.log(fun(1));// 201 //以上写法在解析后应为 var fun=function(n1){ return n1+100; } fun=function(n1){ return n1+200; } // fun 的引用被覆盖了 console.log(fun(1));// 201 </script>
Di atas adalah keseluruhan kandungan artikel ini, saya harap anda semua menyukainya.