Rumah > Artikel > hujung hadapan web > Mengapakah Ahli Objek JavaScript Diprototaip sebagai Tatasusunan Menjadi Dikongsi Merentas Kejadian Kelas?
Ahli Objek JavaScript Diprototaip sebagai Tatasusunan: Dikongsi Merentas Kejadian Kelas
Apabila membuat prototaip tatasusunan dalam JavaScript, adalah penting untuk memahami bahawa ahli ini menjadi dikongsi antara semua contoh kelas. Tingkah laku ini mungkin kelihatan berlawanan dengan intuisi jika anda terbiasa dengan ahli objek peribadi.
Penjelasan Tingkah Laku
Mekanisme prototaip JavaScript membenarkan objek mewarisi sifat dan kaedah daripada objek induk, dikenali sebagai prototaip. Apabila anda mentakrifkan tatasusunan sebagai harta dalam prototaip, ia boleh diakses oleh semua objek yang mewarisi daripada prototaip itu.
Skrip contoh menunjukkan tingkah laku ini:
function Sandwich() { // Uncomment this to fix the problem //this.ingredients = []; }
Dengan baris yang diulas tanpa diulas, setiap contoh Sandwic akan mempunyai susunan bahan peribadinya sendiri. Walau bagaimanapun, dengan baris diulas, semua kejadian berkongsi tatasusunan prototaip yang sama.
Ini bermakna menambah bahan pada burger keju turut mengemas kini ramuan blt dan spicy_chicken_sandwich. Untuk mengelakkan ini, anda mesti menentukan tatasusunan bahan dalam pembina, seperti yang ditunjukkan dalam contoh yang dikemas kini di bawah:
function Sandwich() { this.ingredients = []; }
Prototaip lwn. Contoh
Adalah penting untuk membezakan antara sifat prototaip dan sifat contoh. Sifat prototaip dikongsi oleh semua objek yang mewarisi daripada prototaip itu, manakala sifat contoh adalah unik untuk setiap objek.
Pengubahsuaian Kod untuk Membetulkan Gelagat
Dalam skrip contoh, menyahkomen baris this.ingredients = []; dalam pembina Sandwich memastikan bahawa setiap kejadian mempunyai tatasusunan ramuannya sendiri, seperti yang dimaksudkan.
Kesimpulan
Memahami gelagat tatasusunan prototaip dalam JavaScript adalah penting untuk mengelakkan perkongsian yang tidak dijangka antara contoh kelas. Sentiasa ingat bahawa data yang sepatutnya khusus contoh harus ditakrifkan dalam pembina, manakala data yang dikongsi boleh diberikan kepada prototaip melalui warisan.
Atas ialah kandungan terperinci Mengapakah Ahli Objek JavaScript Diprototaip sebagai Tatasusunan Menjadi Dikongsi Merentas Kejadian Kelas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!