Dalam Bab 4.2.2 corak reka bentuk JavaScript, fungsi lanjutan ditulis seperti berikut
function extend(subClass,superClass){
var F = function(){};
F.prototype = superClass.prototype;
subClass.prototype = new F();
subClass.prototype.constructor = subClass;
}
Soalan saya ialah tentang fungsi F ini. Jika perhubungan pewarisan dilaksanakan dengan cara ini, maka rantai prototaip objek terakhir yang diwujudkan oleh subKelas hendaklah seperti yang ditunjukkan di bawah:
Tetapi sebenarnya, output konsol chrom adalah seperti yang ditunjukkan di bawah
Fungsi F tidak ditunjukkan dalam penyahpepijatan chrom.
Soalan saya ialah mengapa F tiada dalam rantaian prototaip?
Ini adalah rantai prototaip Fungsi kosong F hanyalah pembina sementara, pada dasarnya hanya untuk merealisasikan
.subClass.prototype.__proto__ === superClass.prototype
,本来这样的实现方式subClass.prototype = new superClass()
就可以实现,但是使用空函数可以避免一些问题,比如说superClass
banyak atribut