Mengapa Menetapkan Semula Pembina Prototaip adalah Penting dalam Pewarisan
Dalam bidang pengaturcaraan berorientasikan objek, kami sering menggunakan warisan untuk mencipta kelas baharu yang mewarisi sifat dan kaedah daripada kelas induknya. Satu langkah yang kurang dikenali namun penting dalam proses ini ialah menetapkan semula pembina prototaip.
Kepentingan Menetapkan Semula Pembina
Walaupun ia tidak semestinya wajib, tetapkan semula prototaip pembina memainkan peranan penting dalam memastikan contoh yang dibuat bagi kelas baharu mengekalkan pembina asalnya. Ini amat penting apabila mentakrifkan kaedah pada kelas asas yang melibatkan penciptaan objek.
Mari kita ambil contoh kaedah "salinan" yang ditakrifkan pada kelas "Orang", yang mengembalikan tika baharu dengan nama yang sama:
function Person(name) { this.name = name; } Person.prototype.copy = function() { return new this.constructor(this.name); // Using the inherited 'constructor' instead of 'Person' }; function Student(name) { Person.call(this, name); } Student.prototype = Object.create(Person.prototype);
Jika kita meninggalkan menetapkan semula pembina prototaip, seperti yang berlaku dalam kod di atas, memanggil kaedah "salinan" pada contoh Kelas "Pelajar" akan menghasilkan salinan yang bukan contoh "Pelajar." Ini kerana kelas asas "Orang" tidak mempunyai pengetahuan tentang pembina "Pelajar".
Walau bagaimanapun, dengan menetapkan semula pembina prototaip secara eksplisit:
Student.prototype.constructor = Student;
Kami memastikan kejadian " Kelas pelajar" mewarisi pembina yang betul, membolehkan kami membuat salinan yang dikenal pasti dengan betul sebagai contoh "Pelajar."
Kesimpulannya, menetapkan semula pembina prototaip dalam warisan berfungsi sebagai langkah penting dalam mengekalkan integriti kejadian objek, memastikan mereka mengekalkan pembina yang dimaksudkan dan mewarisi sifat dan kaedah yang diingini.
Atas ialah kandungan terperinci Mengapa Penetapan Semula Pembina Prototaip Penting dalam Pewarisan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!