Mentakrifkan Prototaip JavaScript: Memahami Perbezaan
Mentakrifkan prototaip objek dalam JavaScript adalah penting untuk pewarisan dan kebolehgunaan semula kod. Walau bagaimanapun, terdapat dua pendekatan biasa untuk definisi prototaip: melanjutkan prototaip sedia ada atau menulis ganti sepenuhnya.
Pilihan 1: Memperluas Prototaip Sedia Ada
Person.prototype.sayName = function(name) { alert(name); }
Pendekatan ini memanjangkan objek prototaip semasa Person.prototype dengan menambahkan kaedah baharu sayName. Contoh Orang yang sedia ada akan mewarisi kaedah baharu ini.
Pilihan 2: Mengganti Prototaip
Person.prototype = { sayName: function(name) { alert(name); } }
Tidak seperti Pilihan 1, pendekatan ini memberikan objek prototaip baharu kepada Orang .prototaip, menimpa yang asal. Hanya contoh Orang yang akan datang akan mewarisi kaedah sayName.
Perbezaan dan Faedah Fungsian
Perbezaan fungsi utama ialah Pilihan 1 membenarkan kejadian sedia ada untuk mengakses kaedah baharu, manakala Pilihan 2 hanya mempengaruhi kejadian masa hadapan.
Perbezaan lain ialah dengan menulis ganti prototaip (Pilihan 2), anda secara tidak sengaja membuang sebarang sifat atau kaedah lain yang ditakrifkan sebelum ini dalam prototaip asal. Walaupun ini biasanya termasuk hanya sifat pembina, perlu diperhatikan potensi kelemahan ini.
Pengesyoran
Pilihan 1 (lanjutan) umumnya dianggap lebih ringkas dan mantap kerana ia memastikan bahawa semua kejadian Orang boleh mengakses sayName. Elakkan Pilihan 2 melainkan anda perlu memulakan semula prototaip atas sebab tertentu.
Pendekatan Alternatif
Jika sintaks literal objek Pilihan 2 menarik minat anda, pertimbangkan untuk menggunakan Object. tetapkan untuk melanjutkan prototaip sedia ada:
Object.assign(Person.prototype, { sayName: function(name) { alert(name); } });
Atas ialah kandungan terperinci Melanjutkan lwn. Menimpa Prototaip JavaScript: Pendekatan Mana Yang Terbaik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!