Rumah >hujung hadapan web >tutorial js >Penyelesaian masalah warisan kelas tanpa parameter Javascript dan kemahiran javascript
Apabila ia datang kepada warisan kelas Javascript, ia mesti tidak dapat dipisahkan daripada rantaian prototaip, tetapi warisan yang dilaksanakan hanya melalui rantaian prototaip mempunyai banyak kelemahan.
Masalah dengan warisan kelas tanpa parameter
Mari kita lihat contoh kod untuk melaksanakan pewarisan B daripada A:
fungsi B() {
}
B.prototaip = baru A();
B.prototype.b1 = function() { };
var b = B baharu();
alert(b.constructor == A); // benar
makluman(b.pembina == B); // palsu
1. A perlu dijadikan contoh sebagai prototaip B. Pada masa ini, pembina A dilaksanakan. Tetapi menurut peraturan berorientasikan objek, sebelum membuat instantiat B, pembina B dan kelas induknya A tidak boleh dilaksanakan.
2. Menukar prototaip B, menyebabkan b.pembina bukan B tetapi A.
Terdapat masalah dengan warisan kelas parameter
Andaikan kedua-dua A dan B mempunyai dua parameter rentetan s1 dan s2 A mengira jumlah panjang dua rentetan B secara langsung memanggil A dengan s1 dan s2 sebagai parameter:
fungsi B(s1, s2) {
}
B.prototaip = baru A();
B.prototype.b1 = function() {
};
B("ab" baharu, "123");
Skop s1 dan s2 hanya dalam B. Jika anda ingin memindahkannya ke A, anda hanya boleh beroperasi dalam B. Ini boleh dicapai dengan bantuan kaedah penggunaan fungsi:
Memandangkan bahasa peringkat tinggi seperti C# dan Java telah meninggalkan berbilang warisan, artikel ini hanya membincangkan warisan tunggal. Kaedah pewarisan yang diterangkan dalam artikel ini juga akan ditulis sebagai lanjutan daripada jRaiser dan akan dikeluarkan kemudian.