Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >Bagaimana untuk menentukan sama ada fungsi wujud dalam javascript

Bagaimana untuk menentukan sama ada fungsi wujud dalam javascript

PHPz
PHPzasal
2023-04-21 09:08:093270semak imbas

Dalam JavaScript, fungsi boleh diluluskan dan dimanipulasi sebagai pembolehubah. Dalam pembangunan sebenar, kita sering perlu menentukan sama ada fungsi telah ditakrifkan atau wujud untuk mengelakkan pengecualian atau ralat yang tidak perlu.

Berikut ialah beberapa cara biasa untuk menentukan sama ada fungsi JavaScript wujud:

jenis penentuan

Jenis operator dalam JavaScript digunakan untuk menentukan jenis objek Jika objek adalah jenis fungsi, rentetan "fungsi" dikembalikan, jika tidak rentetan jenis yang sepadan dikembalikan. Oleh itu, anda boleh menggunakan operator jenis untuk menentukan sama ada fungsi sudah wujud. Contohnya:

if(typeof myFunction === "function") {
  // myFunction 已经定义
} else {
  // myFunction 未定义
}

dalam pertimbangan operator

Gunakan operator dalam untuk menilai sama ada objek mengandungi atribut tertentu (termasuk fungsi). Oleh itu, anda boleh menentukan sama ada fungsi telah ditakrifkan dengan menentukan sama ada nama fungsi wujud dalam objek. Contohnya:

if("myFunction" in window) {
  // myFunction 已经定义
} else {
  // myFunction 未定义
}

Antaranya, objek tetingkap ialah objek global pelayar, termasuk semua pembolehubah dan fungsi global.

Badan fungsi toString judgment

Objek fungsi dalam JavaScript mempunyai kaedah toString terbina dalam, yang digunakan untuk menukar fungsi menjadi rentetan. Oleh itu, anda boleh menentukan sama ada fungsi telah ditakrifkan dengan menentukan sama ada rentetan badan fungsi mengandungi kata kunci tertentu. Contohnya:

if(myFunction.toString().indexOf("function myFunction(") != -1) {
  // myFunction 已经定义
} else {
  // myFunction 未定义
}

pertimbangan cuba-tangkap

Gunakan pernyataan cuba-tangkap untuk menangkap pengecualian yang mungkin dilemparkan apabila JavaScript sedang berjalan. Oleh itu, anda boleh meletakkan panggilan fungsi dalam blok cuba Jika fungsi itu wujud, ia akan dilaksanakan secara normal jika tidak, pengecualian akan dilemparkan dan ditangkap oleh blok tangkapan. Contohnya:

try {
  myFunction();
  // myFunction 已经定义
} catch(e) {
  // myFunction 未定义
}

Perlu diambil perhatian bahawa jika fungsi itu wujud tetapi pengecualian lain dilemparkan semasa pelaksanaan, ia juga akan ditangkap oleh blok tangkapan, jadi kaedah ini perlu digunakan dengan berhati-hati.

Ringkasnya, perkara di atas ialah beberapa cara biasa untuk menentukan sama ada fungsi JavaScript wujud. Dalam pembangunan sebenar, anda boleh memilih kaedah yang sesuai mengikut situasi khusus untuk menentukan sama ada fungsi telah ditakrifkan, untuk mengelakkan ralat dan pengecualian yang tidak perlu.

Atas ialah kandungan terperinci Bagaimana untuk menentukan sama ada fungsi wujud dalam javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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