Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Menentukan 'Kelas' Objek JavaScript?

Bagaimanakah Saya Boleh Menentukan 'Kelas' Objek JavaScript?

Susan Sarandon
Susan Sarandonasal
2024-11-18 21:59:021002semak imbas

How Can I Determine the

Mendedahkan Kelas Objek JavaScript: Menyelidiki Pilihan

Tidak seperti kaedah .getClass() Java, JavaScript tidak mempunyai persamaan yang tepat. Ini sebahagian besarnya disebabkan oleh sifat berasaskan prototaipnya, yang membezakan paradigma berasaskan kelas Java.

Mendekati Cabaran:

Bergantung pada tujuan penggunaan .getClass( ), JavaScript menawarkan beberapa pilihan:

1. typeof:

Operator ini menentukan jenis data pembolehubah. Walaupun ia boleh membezakan antara objek, fungsi dan primitif lain, ia tidak akan memberikan maklumat kelas.

2. instanceof:

Operator ini menyemak sama ada objek ialah tika pembina. Contohnya:

function Foo() {}
var foo = new Foo();

foo instanceof Foo; // Returns true

3. obj.constructor:

Harta ini merujuk fungsi pembina untuk objek. Walaupun ia boleh berguna, ia terdedah kepada hasil yang mengelirukan jika objek telah diubah suai.

4. func.prototype, proto.isPrototypeOf:

Prototaip menawarkan cara yang lebih mantap untuk menyemak perhubungan kelas.

function Foo() {}
var foo = new Foo();

Foo.prototype.isPrototypeOf(foo); // Returns true

Nota Tambahan:

  • Kompilasi kod Uglify boleh mengubah nama kelas bukan global. Untuk mengelakkan ini, gunakan parameter palsu --mangle dalam teguk atau dengusan.
  • Walaupun pilihan ini menyediakan tahap maklumat kelas yang berbeza-beza, pilihan ini mungkin tidak sentiasa meniru fungsi .getClass() Java sepenuhnya. Pertimbangkan untuk menyesuaikan pendekatan anda untuk menyelaraskan dengan model berasaskan prototaip JavaScript.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan 'Kelas' Objek 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