Mari kita lihat kode berikut:
mesin fungsi (ecode, horsepower) {this.ecode = ecode; this.horsePower = horsepower;} function showme () {waspada (this.name + "" + this.ecode + "" + this.horsepower);} var machine = mesin baru ("code1", 15); machine.name = "machine1"; machine.showme = showme; machine.showme ();Dalam potongan kode ini, setelah membuat objek mesin, fungsi showme menjadi metode mesin objek mesin melalui mesin.showme = showme;
Namun, itu tergantung pada dua fungsi di atas (satu adalah konstruktor objek dan yang lainnya adalah metode biasa) yang tidak ada hubungannya satu sama lain. Kode seperti itu tidak begitu "elegan", jadi ada prototipe.
// mesin fungsi mesin (ecode, horsepower) {this.ecode = ecode; this.horsepower = horsepower;} // Berikan perhatian khusus pada kalimat ini. Mesin.prototype diinisialisasi ketika diinisialisasi untuk pertama kalinya. // Saat memanggil mesin sebagai konstruktor, nilai mesin tidak akan mengubah lagi mesin.prototype.engine = this.ecode + "" + this.horsePower; machine.prototype.showme = function () {waspada (this.name + "" + this.ecode + "" + this.horsePower); }Menggunakan kode di atas, semua objek mesin memiliki metode showme.
Tapi beri perhatian khusus pada:
Prototipe hanya menghadapi contoh, bukan objek kelas. (Dalam JS, kelas itu sendiri adalah objek) jadi mesin.showme (); Akan melaporkan kesalahan karena objek mesin tidak memiliki metode showme.
Jadi, bagaimana kita menggunakan metode showme? Contoh mesin baru harus dibuat, dan hanya instance mesin yang akan memiliki metode ini.
var machine = mesin baru ("code1", 15); machine.name = "machine1"; machine.showme (); // output mesin1 kode1 15.Dengan prototipe, lebih mudah bagi kita untuk menerapkan hubungan warisan. Misalnya, jika saya menulis kelas mobil sekarang, saya perlu mewarisi kelas mesin saat ini, dan saya hanya perlu menulis kode berikut:
// mobil fungsi mobil (name, ecode, horsepower) {this.name = name; // Menghitung konstruktor kelas induk, sehingga objek mobil memiliki ecode dan horsepower attributes machine.call (ini, ecode, tenaga kuda);} // Prototipe CAR ke mesin, sehingga objek mobil memiliki sifat dan metode prototipe mesin, seperti showmecar.prototype = New Machine ();Anotasi sangat jelas di sini, jadi saya tidak akan membahas detailnya.
Kemudian, kita dapat membuat objek baru untuk mengujinya:
// Buat objek baru mobil kelas. var xiali = mobil baru ("xiali", "aaa", 15); waspada (xiali.engine); xiali.showme ();Di atas adalah aplikasi dasar prototipe, tetapi juga aplikasi prototipe yang paling penting.
Penggunaan prototipe yang Anda kuasai akan memiliki pemahaman yang lebih dalam tentang konstruksi dan warisan objek di masa depan.
Untuk melihat lebih banyak sintaks JavaScript, Anda dapat mengikuti: "Tutorial Referensi JavaScript" dan "Panduan Gaya Kode JavaScript". Saya juga berharap semua orang akan lebih mendukung wulin.com.