Artikel ini menjelaskan metode implementasi kelas dan instance dalam JavaScript. Bagikan untuk referensi Anda. Dengan rincian sebagai berikut:
Tidak ada konsep kelas orang tua, kelas anak, atau kelas atau instance dalam JavaScript. Itu semua tergantung pada rantai prototipe untuk mencapai warisan. Saat mencari sifat suatu objek, JavaScript akan melintasi rantai prototipe ke atas sampai properti yang sesuai ditemukan. Ada beberapa metode yang dapat membuat JavaScript mensimulasikan konsep kelas dan instance.
1. Gunakan konstruktor secara langsung untuk membuat objek, dan gunakan ini untuk merujuk ke instance objek di dalam konstruktor.
Salin kode sebagai berikut: function hewan () {
this.name = "hewan";
}
Animal.prototype.makeound = function () {
Console.log ("Suara Hewan");
}
[Fungsi]
var hewan1 = hewan baru ();
animal1.name;
'hewan'
animal1.makeound ();
suara binatang
Mari kita lihat contoh lain:
Salin kode sebagai berikut: Function Point (x, y) {
this.x = x;
this.y = y;
}
Point.prototype = {
method1: function () {console.log ("method1"); },
method2: function () {console.log ("method2"); },
}
{method1: [function], method2: [function]}
var point1 = titik baru (10, 20);
point1.method1 ();
method1
point1.method2 ();
Metode2
Seperti di atas, pertama tentukan atribut prototipe objek konstruktor. Kemudian, baru instance objek, Anda dapat memanggil metode yang ditentukan dalam prototipe.
2. Gunakan metode objek.create () untuk membuat objek
Salin kode sebagai berikut: var hewan = {
Nama: "Hewan",
Makeound: function () {console.log ("Animal Sound"); },
}
var hewan2 = objek.create (hewan);
hewan2.name;
'hewan'
console.log (hewan.
hewan
animal2.makeound ();
suara binatang
Metode ini lebih sederhana dari metode konstruktor, tetapi tidak dapat mengimplementasikan atribut pribadi dan metode pribadi, dan data tidak dapat dibagi antara objek instan, sehingga simulasi kelas masih belum cukup komprehensif.
3. Pendekatan minimalis yang diusulkan oleh programmer Belanda Gabor de Mooij. Penggunaan yang disarankan.
Salin kode sebagai berikut: var hewan = {
init: function () {
var hewan = {};
hewan.name = "hewan";
animal.makeound = function () {console.log ("hewan hewan"); };
hewan kembali;
}
};
var hewan3 = animal.init ();
hewan.
'hewan'
animal3.makeound ();
suara binatang
Tanpa menggunakan prototipe dan ini, Anda hanya perlu menyesuaikan init konstruktor. Implementasi yang diwariskan juga sangat sederhana.
Salin kode sebagai berikut: var cat = {
init: function () {
var kucing = animal.init ();
cat.name2 = "cat";
cat.makesound = function () {console.log ("Cat sound"); };
cat.sleep = function () {console.log ("Cat Sleep"); };
kembalikan kucing;
}
}
var cat = cat.init ();
nama kucing; // 'hewan'
cat.name2; // 'kucing'
cat.makeound (); // Mirip dengan kelebihan metode
suara kucing
Cat.sleep ();
tidur sebentar
Penggunaan properti pribadi dan metode pribadi:
Salin kode sebagai berikut: var hewan = {
init: function () {
var hewan = {};
var sound = "Private Animal Sound"; // atribut pribadi
animal.makeound = function () {console.log (sound); };
hewan kembali;
}
};
var animal4 = animal.init ();
Hewan. // Atribut pribadi yang tidak ditentukan hanya dapat dibaca melalui metode objek sendiri.
hewan. // Atribut pribadi yang tidak ditentukan hanya dapat dibaca melalui metode objek sendiri.
hewan4.makeound ();
Suara hewan pribadi
Selama properti dan metode yang tidak didefinisikan pada objek hewan bersifat pribadi, mereka tidak dapat diakses oleh dunia luar.
Berbagi data dapat dicapai antara kelas dan instance.
Salin kode sebagai berikut: var hewan = {
Suara: "Suara Hewan Umum",
init: function () {
var hewan = {};
Animal.Commonsound = function () {console.log (animal.sound); };
hewan. };
hewan kembali;
}
}
var animal5 = animal.init ();
var hewan6 = animal.init ();
Hewan. // dapat dianggap sebagai atribut kelas
'Suara Hewan Umum'
hewan. // Objek instan tidak dapat mengakses atribut kelas
belum diartikan
animal6.sound;
belum diartikan
animal5.commonsound ();
Suara hewan biasa
animal6.commonsound ();
Suara hewan biasa
animal5.changesound (); // Ubah Properti Kelas
belum diartikan
Hewan.
'Suara Hewan Umum'
animal5.commonsound ();
Suara hewan biasa
animal6.commonsound ();
Suara hewan biasa
Sebagai contoh, hewan. Sound adalah atribut bersama kelas dan instance, yang dapat dianggap sebagai atribut kelas dan metode kelas.
Jika suatu contoh mengubah atribut umum, atribut umum kelas dan instance lainnya juga dimodifikasi.
Singkatnya, ini adalah konsep dan penggunaan kelas dan contoh yang disimulasikan dalam JavaScript.
Saya harap artikel ini akan membantu pemrograman JavaScript semua orang.