Rumah >hujung hadapan web >tutorial js >Ringkasan pertimbangan umum untuk petua definition_javascript fungsi JavaScript

Ringkasan pertimbangan umum untuk petua definition_javascript fungsi JavaScript

WBOY
WBOYasal
2016-05-16 16:36:221218semak imbas

Artikel ini meringkaskan masalah biasa dengan definisi fungsi JavaScript. Mengandungi kesilapan biasa yang dilakukan oleh pemula. Kongsikan dengan semua orang untuk rujukan anda. Ringkasan khusus adalah seperti berikut:

1. Apabila fungsi diisytiharkan, enjin JS juga mentakrifkan pembolehubah dengan nama yang sama dengan nama fungsi Apabila kita memanggil fungsi ini, kita sebenarnya menggunakan pembolehubah ini, dan ia boleh dipanggil sebelum fungsi diisytiharkan , seperti

foo(); //这里实际上是使用了一函数变量 
function foo() { 
  alert('hello'); 
} 

2. Ungkapan fungsi Pada masa ini, fungsi tanpa nama ditetapkan kepada pembolehubah ini perlu digunakan selepas ditakrifkan, seperti

foo(); //报错,未定义 
var foo = function() { 
  alert('hello'); 
} 

3. Ungkapan fungsi (dengan nama fungsi), penggunaan ini sebaiknya dielakkan Pada masa ini, nama fungsi hanya tersedia secara dalaman dalam pelayar bukan IE, seperti

bar(5); //报错,未定义 
var bar = function foo(n) { 
  if (n == 1) 
    return 1; 
  else 
    return n * foo(n - 1); 
} 
foo(5); //非IE报错,未定义 
bar(5); //正确 

4. Tentukan dengan Pembina Fungsi Kaedah ini tidak cekap Setiap kali fungsi dilaksanakan, badan fungsinya akan dihuraikan. Selain itu, fungsi yang diisytiharkan dengan cara ini tidak akan mewarisi skop kedudukan pengisytiharan semasa Ia hanya akan mempunyai skop global secara lalai, seperti

function foo() { 
  var bar = 'hello'; 
  return Function('alert(bar)'); //报错,全局变量bar未定义 
} 
foo()();

Saya percaya bahawa perkara yang diterangkan dalam artikel ini mempunyai nilai rujukan tertentu untuk pembelajaran semua orang tentang pengaturcaraan WEB javascript.

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