Bahkan, ketika saya pertama kali mulai belajar JS, saya melihat implementasi warisan. Pada saat itu, saya hanya mencoba memahami segmen kode yang saya lihat dari buku. Saya memikirkan kembali hari ini dan merasa bahwa ini adalah hasil dari evolusi eksplorasi berpikir.
Warisan berarti penggunaan kembali.
Jika Anda mengesampingkan ide warisan yang melekat dan membiarkan B menggunakan kembali anggota A, cara paling sederhana dan paling kasar untuk melakukannya, b = a;
Kemudian, pertanyaannya adalah: setiap perubahan ke B adalah perubahan ke A (objek yang sama).
Oke, lalu salin satu. Jika salinan dangkal tidak cukup aman, gunakan salinan yang dalam.
Masalah: Kode digunakan kembali, tetapi memori terbuang (terlepas dari variabel atau metode, itu adalah objek dalam JS).
Jika Anda tidak menyalin, membaca, dan menulis, Anda dapat menggunakan js prototipe, b .__ proto__ = a. Secara umum, kami tidak mengubah __proto__ secara langsung, itu terlalu kejam. JS menyediakan metode yang dapat mencapai tujuan lebih "lembut" - objek.create (b).
Metode ini layak, tetapi ini hanya mode penggunaan kembali untuk objek tertentu. Bagaimana jika kita mencapai "objek yang dibuat menggunakan konstruktorb dapat menggunakan kembali prototipe objek konstruktora"?
Jawabannya adalah: Perlakukan B sebagai konstruktorb.prototype, dan perlakukan A sebagai konstruktora.prototype.
pertanyaan:
Larutan:
Saat mendeklarasikan konstruktorb, sistem akan secara otomatis meminta konstruktorb.prototype.constructor = konstruktorb; Dalam kode di atas, konstruktor dibuang dan konstruktor ditambahkan.
Di atas adalah warisan paling dasar. Ini tidak dalam ruang lingkup artikel ini, tentang bagaimana subclass menyebut konstruktor dan anggota kelas induk lebih umum (seperti ini._super), bagaimana menerapkan mode warisan secara lebih umum (seperti a = warisan (b)), dll.
Di atas adalah konten lengkap dari warisan kuno kelas JavaScript yang dibawa editor kepada Anda. Saya harap semua orang akan mendukung wulin.com lebih banyak ~