Kali ini kita akan berbicara tentang metode kombinasi, prototipe, parasit, dan kombinasi parasit.
1. Kombinasi Warisan : Juga dikenal sebagai pseudo-klasik warisan, ia mengacu pada metode warisan yang menggabungkan rantai prototipe dan meminjam teknologi konstruktor menjadi satu bagian.
Mari kita lihat contoh:
fungsi supertype (name) {this.name = name; this.colors = ["merah", "biru", "hijau"]; } Supertype.prototype.sayname = function () {waspada (this.name); } function subtipe (name, usia) {supertype.call (ini, name); this.age = usia; } // metode warisan subtipe.prototype = supertype baru (); Subtype.prototype.sayage = function () {waspada (this.age); } var instance1 = subtipe baru ("Nicholas", 29); instance1.colors.push ("hitam"); peringatan (instance1.colors); // merah, biru, hijau, black instance1.sayname (); // nicholas instance1.sayage (); // 29 var instance2 = subtipe baru ("greg", 27); peringatan (instance2.colors); // merah, biru, instance hijau2.sayname (); // greg instance2.sayage (); // 27Kombinasi warisan menghindari kekurangan rantai prototipe dan meminjam konstruktor, dan mengintegrasikan keunggulan mereka.
2. Prototipe warisan
Warisan dapat diimplementasikan tanpa konstruktor yang telah ditentukan, pada dasarnya melakukan penyalinan dangkal dari objek yang diberikan. Salinan yang disalin dapat dimodifikasi lebih lanjut.
objek fungsi (o) {function f () {}; F.prototype = o; mengembalikan f baru; } var person = {name: "Nicholas", Friends: ["Shelby", "Court", "Van"]}; var OtherPerson = objek (orang); OtherPerson.name = "Greg"; OtherPerson.Friends.push ("Rob"); var OtherPerson = objek (orang); OtherPerson.name = "Linda"; OtherPerson.Friends.push ("Barbie"); waspada (person.friends); // Shelby, Court, Van, Rob, Barbie3. Warisan Parasit
Sangat mirip dengan prototipe warisan, ia juga membuat objek berdasarkan objek atau beberapa informasi, kemudian meningkatkan objek, dan akhirnya mengembalikan objek. Untuk menyelesaikan masalah inefisiensi yang disebabkan oleh pola warisan kombinasi karena beberapa panggilan ke konstruktor supertype, pola ini dapat digunakan dengan kombinasi warisan.
objek fungsi (o) {function f () {}; F.prototype = o; mengembalikan f baru; } function createanother (asli) {var clone = objek (asli); clone.sayhi = function () {alert ("hai"); }; Klon kembali; } var person = {name: "Nicholas", Friends: ["Shelby", "Court", "Van"]}; var OtherPerson = createanother (orang); OtherPerson.sayhi ();4. Pewarisan Kombinasi Parasit
Menggabungkan keunggulan pewarisan parasit dan warisan kombinasi adalah cara paling efektif untuk mencapai warisan tipe dasar.
// mewarisi Fungsi Prototipe Extand (subtipe, superType) {function f () {}; F.prototype = supertype.prototype; var prototipe = f baru; prototipe.constructor = subtipe; subtype.prototype = prototipe; } // fungsi metode superclass supertype (name) {this.name = name; this.colors = ["merah", "biru", "hijau"]; } Supertype.prototype.sayname = function () {return this.name; } // fungsi metode subkelas supertype (name) {this.name = name; this.colors = ["merah", "biru", "hijau"]; } Supertype.prototype.sayname = function () {return this.name; } // Subtipe Metode Subkelas Subtipe (Nama, Usia) {SuperType.call (Ini, Nama); this.age = usia; } // prototipe extand (subtipe, supertype); // Metode Subclass SubType.Prototype.Sayage = function () {return this.age; } var instance1 = subtipe baru ("Shelby"); var instance2 = subtipe baru ("pengadilan", 28); instance1.colors.push ('hitam'); peringatan (instance1.colors); // merah, biru, hijau, peringatan hitam (instance2.colors); // merah, biru, peringatan hijau (instance1 instance dari subtipe); // Peringatan True (Instance1 Instance dari SuperType); //BENAREfisiensi contoh ini tercermin karena ia hanya menyebut konstruktor supertype sekali, dan dengan demikian menghindari menciptakan sifat yang tidak perlu yang tidak perlu pada subtipe.prototype. Pada saat yang sama, rantai prototipe dapat tetap tidak berubah. Oleh karena itu, instanceof dan isPrototypeOf () juga dapat digunakan secara normal. Pengembang umumnya percaya bahwa pewarisan kombinatorial parasit adalah paradigma warisan yang paling ideal untuk jenis referensi.
Artikel di atas JS Warisan Berorientasi Objek-Penjelasan terperinci tentang beberapa warisan kombinasi adalah semua konten yang saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.