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