Rumah >hujung hadapan web >tutorial js >Bagaimanakah Warisan JavaScript Mempengaruhi Harta Pembina dan Operator `instanceof`?

Bagaimanakah Warisan JavaScript Mempengaruhi Harta Pembina dan Operator `instanceof`?

Linda Hamilton
Linda Hamiltonasal
2024-12-09 00:03:12904semak imbas

How Does JavaScript Inheritance Affect the Constructor Property and `instanceof` Operator?

Warisan JavaScript dan Harta Pembina

Warisan JavaScript melibatkan penciptaan kelas baharu, dikenali sebagai kelas terbitan, daripada kelas sedia ada, dikenali sebagai kelas asas. Kelas terbitan mewarisi sifat dan kaedah kelas asas. Dalam JavaScript, pewarisan dicapai dengan menetapkan prototaip kelas terbitan kepada contoh kelas asas. Walau bagaimanapun, ini boleh menimbulkan persoalan tentang sifat pembina dan pengendali instanceof.

Mengapa Pembina Tidak Dikemas Kini untuk b dan c?

Dalam kod yang disediakan, anda sedang mencipta fungsi a , b, dan c untuk menunjukkan pewarisan. Walau bagaimanapun, apabila anda log pembina untuk contoh b dan c, anda dapati ia adalah pembina kelas asas (a()). Ini kerana apabila anda menetapkan prototaip kelas terbitan kepada contoh kelas asas, anda memautkan kelas terbitan dengan berkesan kepada prototaip kelas asas. Akibatnya, sifat pembina bagi kejadian kelas terbitan kekal menunjuk kepada pembina kelas asas.

Adakah Warisan Dibuat Dengan Tidak Betul?

Mekanisme warisan yang anda gunakan tidak betul. Warisan dicapai dengan memautkan rantai prototaip, dan inilah yang anda lakukan dalam kod anda.

Bagaimanakah Mengemas kini Pembina?

Untuk mengemas kini sifat pembina dalam rantaian warisan JavaScript anda, anda boleh mengikuti langkah berikut:

  1. Buat fungsi pembina tersuai untuk terbitan class.
  2. Tetapkan sifat pembina bagi objek prototaip kelas terbitan kepada pembina tersuai.
  3. Kemas kini sifat pembina kejadian kelas terbitan kepada pembina tersuai.

Bagaimanakah instanceof Menentukan Jenis Instance?

Instanceof operator tidak bergantung pada sifat pembina contoh itu. Sebaliknya, ia merentasi rantai prototaip contoh dan menyemak sama ada sifat [[proto]] dalamannya sepadan dengan sifat prototaip fungsi pembina. Jika terdapat padanan, ia kembali benar, menunjukkan bahawa contoh itu adalah milik pembina itu. Ini membolehkan pengendali instanceof menentukan jenis kejadian dengan tepat walaupun sifat pembina ditetapkan dengan salah.

Atas ialah kandungan terperinci Bagaimanakah Warisan JavaScript Mempengaruhi Harta Pembina dan Operator `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