Terdapat banyak cara untuk menentukan kelas dalam JS:
1. Kaedah kilang
fungsi Kereta(){
var ocar = Objek baharu;
ocar.color = "biru";
ocar.doors = 4;
ocar.showColor = function(){
Document.write(this.color)
};
Kembalikan ocar
}
var car1 = Kereta();
var car2 = Kereta();
Apabila fungsi ini dipanggil, objek baharu akan dicipta dan semua sifat dan kaedah akan diberikan kepadanya. Gunakan fungsi ini untuk mencipta 2 objek dengan sifat yang sama. Sudah tentu, kakak saya boleh mengubah suai kaedah ini dengan menghantar parameter kepadanya.
Salin kod
Kod adalah seperti berikut:
fungsi Kereta(warna,pintu){
var ocar = Objek baharu;
ocar.color = warna;
ocar.doors = pintu;
ocar.showColor = function(){
Document.write(this.color)
};
Kembalikan ocar
}
var car1 = Kereta("merah",4);
var car2 = Kereta("biru",4);
car1.showColor() //output:"merah"
car2.showColor() //output:"biru"
Kini anda boleh mendapatkan objek dengan nilai berbeza dengan menghantar parameter berbeza kepada fungsi.
Dalam contoh sebelumnya, showcolor() dicipta setiap kali fungsi Car() dipanggil, yang bermaksud bahawa setiap objek mempunyai kaedah showcolor() sendiri.
Tetapi sebenarnya, setiap objek berkongsi fungsi yang sama.
Walaupun adalah mungkin untuk mentakrifkan kaedah di luar fungsi dan kemudian menunjuk sifat fungsi kepada kaedah.
Salin kod
Kod adalah seperti berikut:
fungsi showColor(){
Tetapi ini tidak kelihatan seperti kaedah fungsi.
2. Kaedah Pembina
Kaedah pembina adalah semudah kaedah kilang, seperti yang ditunjukkan di bawah:
Salin kod
Kod adalah seperti berikut:
fungsi Kereta(warna,pintu){
This.color = warna;
This.doors = pintu;
This.showColor = function(){
makluman(warna.ini)
};
3. Kaedah prototaip
Kaedah ini menggunakan atribut prototaip objek. Mula-mula nama kelas dicipta dengan fungsi kosong, kemudian semua sifat dan kaedah diberikan atribut prototaip.
Salin kod
Kod adalah seperti berikut:
fungsi Kereta(){
}
Car.prototype.color = "merah";
Kereta.prototaip.pintu = 4
Car.prototype.showColor = function(){
makluman(warna ini);
}
var car1 = new Car();
var car2 = Kereta baharu();
Dalam kod ini, fungsi kosong ditakrifkan dahulu, dan kemudian sifat objek ditakrifkan melalui atribut prototaip. Apabila fungsi ini dipanggil, semua sifat prototaip akan diberikan dengan serta-merta kepada objek yang akan dibuat Semua objek fungsi ini menyimpan penunjuk ke showColor(), dan secara sintaksis semuanya kelihatan milik objek yang sama.
Walau bagaimanapun, fungsi ini tidak mempunyai parameter, dan sifat tidak boleh dimulakan dengan menghantar parameter Nilai lalai sifat mesti ditukar selepas objek dibuat.
Masalah yang sangat serius dengan kaedah prototaip ialah apabila sifat menunjuk ke objek, seperti tatasusunan.
fungsi Kereta(){
}
Car.prototype.color = "merah";
Kereta.prototaip.pintu = 4
Car.prototype.arr = new Array("a","b");
Car.prototype.showColor = function(){
makluman(warna ini);
}
var car1 = new Car();
var car2 = Kereta baharu();
car1.arr.push("cc");
alert(car1.arr); //output:aa,bb,cc
alert(car2.arr); //output:aa,bb,cc
Disebabkan nilai rujukan tatasusunan, kedua-dua objek Kereta menghala ke tatasusunan yang sama, jadi apabila nilai itu ditambahkan pada car1, ia juga boleh dilihat dalam car2.
Kesatuan ialah kaedah yang menggunakan kaedah pembina/prototaip untuk mencipta objek seperti bahasa pengaturcaraan lain Ia menggunakan pembina untuk menentukan atribut bukan fungsi objek dan kaedah prototaip untuk menentukan objek.
Salin kod
}
Car.prototype.showColor(){
makluman(warna ini);
}
var car1 = new Car("merah",4);
var car2 = new Car("biru",4);
car1.arr.push("cc");
alert(car1.arr); //output:aa,bb,cc
alert(car2.arr); //output:aa,bb
5. Kaedah prototaip dinamik
Prinsip kaedah prototaip dinamik adalah serupa dengan kaedah pembina/prototaip campuran. Satu-satunya perbezaan adalah di mana kaedah objek ditetapkan.
Salin kod
Kod adalah seperti berikut:
Kereta._dimulakan = benar;
}
}
Kaedah prototaip dinamik menggunakan bendera untuk menentukan sama ada kaedah telah diberikan kepada prototaip. Ini memastikan kaedah hanya dibuat sekali
6. Mencampur kaedah kilang
Tujuannya adalah untuk mencipta pembina palsu yang hanya mengembalikan contoh baharu objek lain.
Salin kod
Kod adalah seperti berikut:
fungsi Kereta(){
var ocar = new Object();
ocar.color = "merah";
ocar.doors = 4;
ocar.showColor = function(){
makluman(warna.ini)
};
Kembalikan ocar
}
Perbezaan dari kaedah kilang ialah kaedah ini menggunakan operator baru.
Di atas adalah semua kaedah untuk mencipta objek. Kaedah yang paling banyak digunakan pada masa ini ialah kaedah pembina/prototaip campuran Selain itu, kaedah prototaip dinamik juga sangat popular. Secara fungsional bersamaan dengan pendekatan pembina/prototaip.
Di atas adalah keseluruhan kandungan artikel ini, saya harap anda semua menyukainya.