Rumah >hujung hadapan web >tutorial js >Mengapa Tidak Kemas Kini Harta Pembina JavaScript dalam Warisan Prototaip?
Dalam JavaScript, pewarisan dicapai melalui pewarisan prototaip, di mana objek mewarisi sifat dan kaedah daripada objek lain melalui rantai prototaipnya. Sifat pembina memainkan peranan penting dalam mekanisme ini.
Warisan dan Harta pembina
Pertimbangkan kod berikut:
function a() {} function b() {} function c() {} b.prototype = new a(); c.prototype = new b(); console.log((new a()).constructor); //a() console.log((new b()).constructor); //a() console.log((new c()).constructor); //a()
Mengapa tidak 't pembina dikemas kini untuk b dan c? Ini kerana dalam JavaScript, sifat pembina tidak diberikan kepada contoh secara langsung; sebaliknya, ia terletak pada objek prototaip. Ia menyimpan rujukan kepada fungsi pembina yang mencipta objek. Dalam contoh di atas, prototaip b dan c ditetapkan kepada contoh a, itulah sebabnya pembina untuk ketiga-tiga kejadian dilaporkan sebagai a().
Amalan Terbaik untuk Mengemas kini pembina
Untuk mengemas kini sifat pembina untuk kelas yang diwarisi, pendekatan biasa ialah menggunakan perantaraan fungsi:
function base() {} function derive() { derive.superclass = base.prototype; derive.prototype = new derive.superclass(); derive.prototype.constructor = derive; }
Teknik ini memastikan bahawa sifat pembina kejadian terbitan ditetapkan dengan betul kepada fungsi terbitan.
Instanceof dan Rantaian Prototaip
Walaupun pembina (c()) baharu adalah sama dengan a(), ia masih boleh bagi instanceof untuk mengenal pasti c() baharu dengan betul sebagai contoh bagi c. Ini kerana instanceof menyemak rantaian prototaip objek contoh. Dalam kes ini, rantaian prototaip untuk c() baharu membawa kembali kepada prototaip c.
console.log(new a() instanceof a); //true console.log(new b() instanceof b); //true console.log(new c() instanceof c); //true
Kesimpulan
Warisan JavaScript dan interaksi sifat pembina boleh kompleks, tetapi memahaminya adalah penting untuk pengaturcaraan berorientasikan objek yang berkesan dalam JavaScript. Dengan memahami konsep yang digariskan dalam artikel ini, anda boleh menulis kod yang mantap dan boleh diguna semula yang memanfaatkan warisan dan rantaian prototaip dengan berkesan.
Atas ialah kandungan terperinci Mengapa Tidak Kemas Kini Harta Pembina JavaScript dalam Warisan Prototaip?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!