Rumah  >  Artikel  >  Mengapakah ralat akan dilaporkan tanpa menambah instanceof?

Mengapakah ralat akan dilaporkan tanpa menambah instanceof?

小老鼠
小老鼠asal
2023-11-13 15:05:00495semak imbas

Alasannya ialah: Operator instanceof digunakan untuk menyemak sama ada objek ialah tika kelas tertentu (atau kelas terbitannya). Jika objek bukan contoh kelas, maka penentuan jenis tidak boleh dibuat dan ralat dilemparkan. Untuk mengelakkan ralat ini, apabila menggunakan pengendali instanceof, anda perlu memastikan bahawa objek adalah contoh kelas. Jika anda tidak pasti tentang jenis objek, anda boleh menggunakan kaedah lain untuk menentukan jenisnya.

Mengapakah ralat akan dilaporkan tanpa menambah instanceof?

Sistem pengendalian tutorial ini: sistem Windows 10, komputer Dell G3.

Dalam JavaScript, jika anda cuba menggunakan operator instanceof pada objek yang bukan contoh kelas, TypeError akan dilemparkan.

Ini kerana pengendali instanceof digunakan untuk menyemak sama ada objek ialah tika kelas tertentu (atau kelas terbitannya). Jika objek bukan contoh kelas, maka penentuan jenis tidak boleh dibuat dan ralat dilemparkan.

Berikut ialah contoh:

const obj = { name: "John" };console.log(obj instanceof Object); // trueconsole.log(obj instanceof Array); // false,抛出 TypeError 错误

Dalam contoh di atas, obj ialah objek biasa, ia bukan contoh kelas Array. Oleh itu, menggunakan obj instanceof Array akan membuang ralat TypeError.

Untuk mengelakkan ralat ini, apabila kita menggunakan operator instanceof, kita perlu memastikan bahawa objek itu adalah instance kelas. Jika anda tidak pasti tentang jenis objek, anda boleh menggunakan kaedah lain untuk menentukan jenis, seperti menggunakan operator jenis atau kaedah semakan jenis lain.

Atas ialah kandungan terperinci Mengapakah ralat akan dilaporkan tanpa menambah instanceof?. 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
Artikel sebelumnya:Apakah skop dan rantai skopArtikel seterusnya:Apakah skop dan rantai skop