Metode konstruktor sangat berguna, tetapi ada pemborosan memori
Fungsi yang ditetapkan oleh prototipe dibagikan oleh semua objek.
Atribut yang ditugaskan oleh prototipe independen .----- jika Anda tidak memodifikasi atribut, mereka dibagikan
Jika kita ingin semua objek menggunakan fungsi yang sama, yang terbaik adalah menambahkan fungsi menggunakan metode prototipe, yang menghemat memori.
contoh:
// ---- mode konstruktor
Tambahkan atribut yang tidak berubah "ketik" ke objek kucing, dan kemudian tambahkan metode makan (makan tikus). Kemudian, kucing prototipe kucing menjadi sebagai berikut:
<script> function cat (name, color) {this.name = name; this.color = warna; this.type = "feat"; this.eat = function () {alert ("Eat Mouse"); }; } // Hasilkan contoh: var cat1 = kucing baru ("rambut besar", "kuning"); var cat2 = kucing baru ("makan rambut", "hitam"); peringatan (cat1.type); // feat cat1.eat (); // makan peringatan tikus (cat1.eat == cat2.eat); // false </script>Artinya, untuk setiap objek instan, atribut tipe dan metode EAT () adalah konten yang persis sama. Setiap kali contoh dihasilkan, itu harus berulang kali konten dan menempati lebih banyak memori. Ini tidak ramah lingkungan atau efisien.
// ---- mode prototipe
JavaScript menetapkan bahwa masing -masing konstruktor memiliki atribut prototipe yang menunjuk ke objek lain. Semua properti dan metode objek ini akan diwarisi oleh contoh konstruktor.
Ini berarti bahwa kita dapat secara langsung mendefinisikan sifat dan metode yang tidak berubah pada objek prototipe.
<script> function cat (name, color) {this.name = name; this.color = warna; } Cat.prototype.type = "betina"; cat.prototype.eat = function () {alert ("Eat mouse")}; // menghasilkan instance. var cat1 = kucing baru ("rambut besar", "kuning"); var cat2 = kucing baru ("2 rambut", "hitam"); peringatan (cat1.type); // cat1.eat (); // makan peringatan tikus (cat1.eat == cat2.eat); // truef </script>Pada saat ini, metode Atribut dan Eat () dari semua contoh sebenarnya adalah alamat memori, menunjuk pada objek prototipe, sehingga meningkatkan efisiensi operasi.
Pengantar di atas tentang perbedaan antara konstruktor JS dan prototipe prototipe adalah semua konten yang saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.