Penerangan Mod Prototaip
Penerangan: Gunakan contoh prototaip untuk menyalin dan mencipta objek baharu yang boleh disesuaikan, anda tidak perlu mengetahui proses khusus untuk mencipta objek asal;
Proses: Prototaip => ProtoExam baharu => klon kepada Objek baharu;Gunakan kod yang berkaitan:
Kembalikan 'Maklumat peribadi, nama: ' this.name ', umur: ' this.age ', jantina: ' this.sex '
';
}
Dua atau lebih kandungan maklumat peribadi kini diperlukan:
Pulangan output:
Mod prototaip biasanya digunakan apabila struktur abstrak adalah kompleks, tetapi komposisi kandungan adalah serupa, kandungan abstrak boleh disesuaikan dan objek yang baru dibuat hanya perlu diubah suai sedikit untuk memenuhi keperluan
Object.create Arahan
1>. Definisi: Buat objek yang boleh menentukan objek prototaip dan boleh mengandungi sifat tersuai pilihan; 2> Object.create(proto [, properties]);
1. Cipta kelas objek prototaip:
Salin kod
Cara menggunakan
1. Cipta objek dengan ProtoClass.prototype;
2.Gunakan ProtoClass segera sebagai prototaip:
var obj2 = Object.create(proto, {
foo:{nilai:'obj2'}
});
obj2.aMethod(); //ProtoClass
obj2.foo; //obj2
3. Warisan subkelas:
SubClass.prototype.subMethod = function() {
Kembalikan this.a ||. this.foo;
}
Kaedah ini boleh diwarisi kepada kaedah aMethod ProtoClass dan dilaksanakan;
Untuk membenarkan SubClass membaca atribut ahli ProtoClass, SubClass perlu ditukar:
//Kod lain;
Kaedah ini boleh mendapatkan atribut ahli dan kaedah prototaip ProtoClass;:
Kaedah lain adalah dengan menggunakan objek ProtoClass yang di instantiated sebagai prototaip SubClass;
fungsi SubClass() {
}
SubClass.prototype = Object.create(proto, {
foo:{value: 'subclass'}
});
Dengan cara ini, selepas SubClass dijadikan instantiated, anda boleh mendapatkan semua sifat dan kaedah prototaip ProtoClass, dan mencipta atribut data baca sahaja foo;
4. Satu lagi kaedah pewarisan penciptaan mempunyai kesan yang sama seperti Object.create menggunakan ProtoClass instantiated sebagai prototaip:
SubClass.prototype = ProtoClass();
Objek.buat arahan berkaitan
Object.create digunakan untuk mencipta objek baharu Apabila ia adalah Object, prototaipnya adalah nol dan fungsinya adalah sama dengan new Object();
Apabila ia adalah fungsi, ia mempunyai kesan yang sama seperti FunctionName baharu;
//--------------------------------------
function func() {
This.a = 'func';
}
func.prototype.method = function() {
Kembalikan ini.a;
}
var newfunc = new func();
//Bersamaan dengan [kesan yang sama]
var newfunc2 = Object.create(Object.prototype/*Function.prototype||function(){}*/, {
a: {value:'func', boleh ditulis:true},
Kaedah: {value: function() {return this.a;} }
});
Tetapi newfunc dan newfunc2 mempunyai rujukan fungsi yang berbeza dalam objek yang menciptanya.
newfunc ialah function func() {...}, newfunc2 ialah function Function {Native}
propertiesField adalah pilihan dan menetapkan sifat ahli atau kaedah yang mungkin diperlukan oleh objek yang baru dibuat;