5. Warisan Parasit
Mirip dengan konstruktor parasit dan pola pabrik, buat fungsi yang hanya digunakan untuk merangkum proses warisan, yang secara internal meningkatkan objek dengan cara tertentu dan akhirnya mengembalikan objek.
Function createAnother (asli) {var clone = object.create (asli); // Buat objek baru dengan memanggil fungsi clone.sayhi = function () {// Tingkatkan objek ini dalam beberapa cara peringatan ("hi"); }; Klon kembali; // kembalikan objek ini} var person = {name: "bob", friends: ["shelby", "court", "van"]}; var anotherperson = createanother (orang); OtherPerson.sayhi ();Dalam contoh di atas, fungsi createAnother menerima parameter, yaitu objek yang akan digunakan sebagai dasar dari objek baru.
OtherPerson adalah objek baru yang dibuat berdasarkan orang. Objek baru tidak hanya memiliki semua properti dan metode orang, tetapi juga metode Sayhi () sendiri.
6. Warisan Kombinasi Parasit
Kombinasi warisan adalah pola warisan yang paling umum digunakan dalam JS. Masalah terbesar dengan warisan kombinasi adalah bahwa konstruktor akan dipanggil dua kali dalam hal apa pun: sekali ketika membuat prototipe subtipe, dan waktu lain di dalam konstruktor subtipe.
fungsi supertype (name) {this.name = name; this.colors = ["red", "blue", "green"];} supertype.prototype.sayname = function () {alert (this.name);} function subtipe (name, evene) {supertype.call (this, name); // Panggilan kedua ke supertype () this.age = usia;} subtipe.prototype = supertype baru (); // Panggilan pertama ke supertype () subtype.prototype.sayage = function () {alert (this.age);}Ketika konstruktor supertype dipanggil untuk pertama kalinya, subtype.prototype akan mendapatkan dua properti: nama dan warna; Keduanya adalah sifat instance dari supertype, tetapi mereka sekarang terletak di prototipe subtipe.
Ketika konstruktor subtipe dipanggil, konstruktor supertype dipanggil lagi, dan kali ini, nama dan warna atribut instance dibuat pada objek baru.
Jadi kedua atribut ini memblokir dua atribut dengan nama yang sama dalam prototipe.
Warisan kombinasi parasit adalah untuk menyelesaikan masalah ini.
Atribut mewarisi dengan meminjam konstruktor;
Mewarisi metode melalui rantai prototipe.
Tidak perlu memanggil konstruktor supertype untuk menentukan prototipe subtipe.
function wenchPrototype (subtipe, supertype) {var prototipe = object.create (supertype.prototype); // Buat objek prototipe.constructor = subtipe; // Tingkatkan objek subtipe.prototype = prototipe; // tentukan objek} function supertype (name) {this.name = name; this.colors = ["red", "blue", "green"];} supertype.prototype.sayname = function () {alert (this.name);} function subtipe (name, evene) {supertype.call (this, name); // Panggilan kedua ke supertype () this.age = usia;} wheritprototype (subtipe, supertype) subtype.prototype.sayage = function () {waspada (this.age);} var instance = baru subtipe ("bob", 18); instance.sayname (); instance.sayage ();Fungsi wheritprototype menerima dua parameter: konstruktor subtipe dan konstruktor supertype.
1. Buat salinan prototipe supertype.
2. Tambahkan atribut konstruktor ke salinan yang dibuat untuk menebus atribut konstruktor default yang hilang karena menulis ulang prototipe.
3. Tetapkan objek yang baru dibuat (mis. Salin) ke prototipe subtipe. Metode ini hanya memanggil konstruktor supertype sekali, dan instanceof dan isPrototypeOf () juga dapat digunakan secara normal.
Artikel di atas secara singkat berbicara tentang JS warisan_parasitic warisan & pewarisan kombinasi parasit 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.