Rumah  >  Artikel  >  hujung hadapan web  >  Penjelasan terperinci tentang kaedah menentukan kelas dalam kemahiran javascript_javascript

Penjelasan terperinci tentang kaedah menentukan kelas dalam kemahiran javascript_javascript

WBOY
WBOYasal
2016-05-16 16:14:351038semak imbas

Terdapat banyak cara untuk menentukan kelas dalam JS:

1. Kaedah kilang

Salin kod Kod adalah seperti berikut:

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)

};

} var car1 = new Car("merah",4); var car2 = new Car("biru",4); Anda boleh melihat bahawa kaedah pembina tidak mencipta objek di dalam fungsi, tetapi menggunakan kata kunci ini. Kerana objek telah dibuat apabila pembina dipanggil, dan hanya ini boleh digunakan untuk mengakses sifat objek di dalam fungsi. Sekarang gunakan baharu untuk mencipta objek, ia kelihatan seperti ini! Tetapi ia sama dengan pendekatan kilang. Setiap panggilan mencipta kaedah sendiri untuk objek.
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.

Salin kod Kod adalah seperti berikut:

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

Kod adalah seperti berikut: fungsi Kereta(warna,pintu){ This.color = warna; This.doors = pintu; This.arr = new Array("aa","bb");
}
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.
Kenyataan:
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