Rumah > hujung hadapan web > tutorial js > Apakah Perbezaan Antara Memanjangkan dan Menimpa Prototaip JavaScript?

Apakah Perbezaan Antara Memanjangkan dan Menimpa Prototaip JavaScript?

Mary-Kate Olsen
Lepaskan: 2024-11-25 02:45:11
asal
621 orang telah melayarinya

What are the Differences Between Extending and Overwriting JavaScript Prototypes?

Mentakrifkan Prototaip JavaScript: Meneroka Dua Sintaks dan Kesannya

Dalam JavaScript, mentakrifkan prototaip menawarkan cara yang mudah untuk menambah gelagat pada objek. Dua sintaks biasa wujud untuk definisi prototaip, dan ia boleh mempunyai perbezaan fungsi.

Pilihan 1: Memperluas Prototaip Sedia Ada

Person.prototype.sayName = function(name) {
   alert(name);
}
Salin selepas log masuk

Sintaks ini memanjangkan objek prototaip sedia ada dengan harta baharu (sayName) dan fungsi yang diberikan kepadanya. Objek yang diwujudkan sebelum takrifan ini boleh mewarisi kaedah baharu.

Pilihan 2: Menimpa Prototaip

Person.prototype = {
   sayName: function(name) {
      alert(name);
   }
}
Salin selepas log masuk

Di sini, keseluruhan objek prototaip digantikan dengan yang baharu , hanya mengandungi kaedah sayName. Ini menimpa semua sifat prototaip sedia ada, termasuk sifat pembina terikat secara tersirat.

Perbezaan Fungsian

  • Pilihan 1 (Melanjutkan): Objek dibuat sebelum definisi prototaip akan mewarisi sayName baharu kaedah.
  • Pilihan 2 (Tulis Ganti): Hanya objek yang ditimpa selepas penimpaan prototaip akan menggunakan prototaip baharu.

Faedah dan Kelemahan

  • Pilihan 1 (Melanjutkan) adalah lebih baik: Ia lebih bersih dan mengekalkan sifat prototaip sedia ada. Ia penting untuk mengubah suai prototaip kelas luaran.
  • Elakkan Pilihan 2 (Timpa Ganti): Ia boleh membuang harta pembina dan mengganggu rantai prototaip sedia ada.

Sintaks Alternatif untuk Melanjutkan:

Untuk sintaks literal objek yang lebih bersih tanpa menulis ganti, pertimbangkan untuk menggunakan Object.assign:

Object.assign(Person.prototype, {
   sayName: function(name) {
      alert(name);
   }
});
Salin selepas log masuk

Atas ialah kandungan terperinci Apakah Perbezaan Antara Memanjangkan dan Menimpa Prototaip JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan