Rumah > hujung hadapan web > tutorial js > Kaedah Prototaip lwn. Ditakrifkan Pembina: Mana yang Terbaik untuk JavaScript?

Kaedah Prototaip lwn. Ditakrifkan Pembina: Mana yang Terbaik untuk JavaScript?

Patricia Arquette
Lepaskan: 2024-11-20 13:49:14
asal
221 orang telah melayarinya

Prototype vs. Constructor-Defined Methods: Which is Best for JavaScript?

Kelebihan Prototaip vs. Kaedah Ditentukan Pembina

Apabila mentakrifkan kaedah dalam JavaScript, pembangun boleh memilih antara melaksanakannya sebagai kaedah prototaip atau mengisytiharkan mereka secara langsung dalam pembina. Kedua-dua pendekatan mempunyai kelebihannya:

Kaedah Ditentukan Prototaip

  • Perubahan Universal: Kaedah prototaip boleh dikemas kini secara global untuk semua keadaan kelas, manakala kaedah yang ditentukan pembina memerlukan kemas kini untuk setiap contoh secara individu.
  • Peningkatan Prestasi: Kaedah prototaip dicipta sekali dan dikongsi oleh semua keadaan, mengurangkan penciptaan kaedah berulang.

Contoh:

function Class() {}
Class.prototype.calc = function (a, b) {
  return a + b;
}

// Two instances share the same calc() method
var ins1 = new Class(),
    ins2 = new Class();
console.log(ins1.calc(1,1), ins2.calc(1,1)); // Outputs 2, 2

// Updating the prototype method affects both instances
Class.prototype.calc = function() {
  return Array.prototype.slice.apply(arguments).reduce((a, b) => a + b);
}
console.log(ins1.calc(1,1,1), ins2.calc(1,1,1)); // Outputs 3, 3
Salin selepas log masuk

Walau bagaimanapun, kaedah prototaip tidak boleh mengakses pembolehubah persendirian yang ditakrifkan di dalam pembina.

Kaedah Ditakrifkan Pembina

  • Akses kepada Pembolehubah Peribadi: Kaedah awam yang ditakrifkan dalam pembina mempunyai akses kepada pembolehubah persendirian, tidak seperti kaedah prototaip.

Fungsi lwn. Pengisytiharan Pembolehubah untuk "Kelas"

Mengenai pilihan antara menggunakan literal fungsi (cth., var Class = function () {}) atau pengisytiharan fungsi (cth., function Class () {}), yang terakhir diutamakan kerana ia membenarkan "menaikkan" nama fungsi ke bahagian atas skop, mengelakkan kemungkinan ralat yang disebabkan oleh memanggil fungsi sebelum ia telah ditakrifkan.

Atas ialah kandungan terperinci Kaedah Prototaip lwn. Ditakrifkan Pembina: Mana yang Terbaik untuk 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