Penjelasan terperinci tentang jenis Fungsi dalam kemahiran javascript_javascript

WBOY
Lepaskan: 2016-05-16 16:02:00
asal
1337 orang telah melayarinya

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 objek

 2. 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>

Salin selepas log masuk
Penjelasan: Terdapat tiga cara untuk mengisytiharkan fungsi, tetapi ia berbeza.

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>
Salin selepas log masuk
 3. Mengapakah fungsi tidak terbeban?

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>
Salin selepas log masuk
Itu sahaja untuk hari ini. Ini semua tentang konsep asas saya harap ia akan membantu mereka yang mempunyai bintik buta di kawasan ini. Jika ada apa-apa yang memerlukan pembetulan, saya harap anda akan meninggalkan komen dan membetulkan saya.

Di atas adalah keseluruhan kandungan artikel ini, saya harap anda semua menyukainya.

Label berkaitan:
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