Pertama, mari kita lihat warisan non-utama satu: Metode warisan instan.
Saya tidak mengatakan begitu banyak omong kosong. Karena diwarisi oleh non-utama, itu tidak boleh sering digunakan. Karena tidak sering digunakan dan masih ada, hanya ada satu faktor yang digunakan dalam kesempatan tertentu. Metode warisan instan terutama digunakan untuk pewarisan objek inti, dan juga satu -satunya cara untuk menyelesaikan pewarisan objek inti sejauh ini.
Warisan objek inti memiliki nilai tertentu. Misalnya, objek kesalahan. Perusahaan kami mungkin harus menerapkan kelas kesalahan untuk menyederhanakan pengembangan di masa depan. Pada saat ini, saya harus menggunakan metode warisan instan untuk mewarisi kesalahan.
Kodenya adalah sebagai berikut:
Salinan kode adalah sebagai berikut:
Fungsi ExtendingError (MES)
{
var instance = new error (mes);
instance.newError = function () {
Peringatan ("Kesalahan Anda adalah"+mes);
}
instance return;
}
OK, UJI:
Salinan kode adalah sebagai berikut:
var e = extendingError baru ("Nomor Anda kurang dari satu");
e.newerror ();
alert (e.tostring ());
Hasilnya memuaskan kita:
OK, tanpa mengatakan banyak omong kosong, ini adalah metode warisan non-utama, yang pada dasarnya hanya digunakan untuk warisan objek inti, ingat saja!
Selanjutnya, mari kita lihat warisan non-utama kedua: Salin metode warisan.
Seperti namanya, salin warisan berarti warisan objek melalui penyalinan. Apa yang harus saya salin? Jelas bahwa itu adalah sifat dan metode objek. Apakah Anda masih ingat bahwa di JavaScript, kelas sebenarnya adalah hashtable? Jika Anda tidak ingat, kembalilah dan tinjau dasar -dasarnya. Saya dapat menulis artikel tentang objek JavaScript dalam beberapa saat.
Akan lebih mudah untuk memahami hal ini, lihat saja kode:
Pertama, tulis metode perpanjangan:
Salinan kode adalah sebagai berikut:
Function.prototype.extend = function () {
untuk (var pro dalam obj)
{
// Ini sebenarnya adalah salinan lengkap dari properti dan metode kelas induk
this.prototype [pro] = obj [pro];
}
}
Oke, tulis sepotong kode untuk melihat cara menggunakannya:
Salinan kode adalah sebagai berikut:
fungsi hewan ()
{}
function people ()
{}
People.extend (hewan baru ())
{}
Sekilas bahwa orang yang cerdas dapat melihat bahwa kelemahan metode ini terlalu jelas:
Saat menyalin metode atribut suatu objek satu per satu, refleksi sebenarnya digunakan. Saya tidak akan banyak bicara tentang kerusakan efisiensi refleksi.
Seperti prototipe warisan, objek induk harus diinisialisasi. Ketika hubungan warisan ditentukan, tetapi parameternya masih belum pasti, itu tidak dapat dimainkan!
Singkatnya, metode ini umumnya tidak digunakan.
Oke, mari kita bicara tentang sesuatu yang biasa digunakan. Warisan Campuran!
Ini didasarkan pada dua metode warisan utama. Membandingkan dua metode warisan, kita dapat menemukan bahwa kelebihan dan kekurangan dari dua metode warisan adalah komplementer, jadi mudah untuk mencampurnya bersama!
Salinan kode adalah sebagai berikut:
Fungsi Orang (Nama)
{
this.name = name;
this.sayname = function () {
peringatan ("Nama saya"+nama);
}
}
Function Girl (nama, usia)
{
// warisan konstruksi
this.father = orang;
this.father (nama);
Hapus ini. Ayah;
this.introduce = function () {
peringatan ("Nama saya"+nama+". Saya"+usia);
}
}
// prototipe warisan
Girl.prototype = orang baru ();
Oke, campuran dari dua metode, sekarang mari kita lihat apakah masalahnya telah diselesaikan?
var g = gadis baru ("xuan", 22);
waspada (g orang orang);
g.sayname ();
g.introduce ();
Tes lulus!
Ini adalah solusi yang relatif sempurna, tetapi meningkatkan kompleksitas kode, sehingga solusi spesifik tergantung pada pilihan semua orang dalam praktik.
Ini adalah cara untuk bermain dengan JavaScript. Semua orang dipersilakan untuk terus mengikuti artikel saya yang lain.