Artikel ini menganalisis penggunaan pewarisan rantaian prototaip JavaScript dengan contoh. Kongsikan dengan semua orang untuk rujukan anda. Analisis khusus adalah seperti berikut:
fungsi Segitiga(sisi, tinggi){
this.side = sebelah;
ini.tinggi = tinggi;
}
Triangle.prototype = TwoDShape.prototype;
Triangle.prototype.constructor = Segi tiga;
Triangle.prototype.name = 'Segitiga';
Triangle.prototype.getArea = function(){
kembalikan this.side*this.height/2;
}
Walaupun ia meningkatkan kecekapan, kaedah ini mempunyai kesan sampingan Kerana ia diluluskan melalui rujukan dan bukannya nilai, nilai nama dalam "objek induk" terjejas.
Objek anak dan objek induk menghala ke objek yang sama. Jadi sebaik sahaja objek kanak-kanak mengubah suai prototaipnya, objek induk juga akan ditukar serta-merta.
Tulis semula sekali lagi (menggunakan pembina sementara):
Salin kod
Kod adalah seperti berikut:
fungsi Shape(){}
Shape.prototype.name = 'shape';
Shape.prototype.toString = function(){
kembalikan this.name;
}
fungsi TwoDShape(){}
var F = function(){}
F.prototaip = Bentuk.prototaip;
TwoDShape.prototype = baharu F();
TwoDShape.prototype.constructor = TwoDShape
TwoDShape.prototype.name = 'bentuk 2d';
fungsi Segitiga(sisi, tinggi){
this.side = sebelah;
ini.tinggi = tinggi;
}
F.prototaip = TwoDShape.prototype;
Triangle.prototype = F();
Triangle.prototype.constructor = Segi tiga;
Triangle.prototype.name = 'Segitiga';
Triangle.prototype.getArea = function(){
kembalikan this.side*this.height/2;
}
Walaupun ia meningkatkan kecekapan, kaedah ini mempunyai kesan sampingan Kerana ia diluluskan melalui rujukan dan bukannya nilai, nilai nama dalam "objek induk" terjejas.
Objek kanak-kanak dan objek induk menghala ke objek yang sama. Jadi sebaik sahaja objek kanak-kanak diubah suai dengan menjajarkan prototaip, objek induk juga akan ditukar serta-merta.
Saya harap artikel ini akan membantu reka bentuk pengaturcaraan JavaScript semua orang.