ECMascript6 sudah mendukung kelas, tetapi tidak ada versi yang mendukung versi sebelumnya, tetapi beberapa metode dapat digunakan untuk mensimulasikan kelas.
Kelas -kelas di JS adalah poin -poin penting dan poin -poin sulit, dan sering merasa ambigu.
Pertama, saya ingin menekankan tiga poin pengetahuan yang sangat penting dalam JS: ini, prototipe, dan konstruktor.
Mari kita ringkas metode untuk mendefinisikan kelas (simulasi):
1. Model pabrik
function createObject (name, usia) {var obj = objek baru (); obj.name = nama; obj.age = usia; obj.getName = function () {return this.name; }; obj.getage = function () {return this.age; } return obj;} var obj2 = createObject ("wang wu", 19); console.log (obj2.getname ()); console.log (obj2.getage ()); console.log (obj2.constructor);Metode mode pabrik membuat objek. Mode pabrik dapat membuat objek yang berisi informasi yang diperlukan berdasarkan parameter yang diterima. Metode ini dapat disebut berkali -kali tak terbatas, dan setiap kali mengembalikan objek yang berisi 2 atribut dan 2 metode. Pola pabrik memecahkan masalah membuat objek yang sama, tetapi tidak menyelesaikan masalah pengenalan objek, yaitu, kategori suatu objek tidak dapat ditentukan dan disatukan menjadi suatu objek.
2. Metode Konstruktor
Function Person (Name, Umur, Job) {this.name = name; this.age = usia; this.job = job;} person.prototype = {constructor: person, getName: function () {return this.name; }, getage: function () {return this.age; }, getjob: function () {return this.job; }} var p = orang baru ("Ermazi", 18, "pekerja"); console.log (p.constructor); console.log (p.getname ()); console.log (p.getage ()); console.log (p.getjob ());Meskipun metode konstruktor menentukan masalah kepemilikan objek dan dapat menentukan jenis objek, metode dalam konstruktor perlu diciptakan kembali di setiap objek, menghasilkan beberapa masalah kinerja.
3. Mode prototipe
function person () {} person.prototype = {konstruktor: orang, nama: "zhang san", usia: 21, pekerjaan: "guru", getName: function () {return this.name; }, getjob: function () {return this.job; }} var p = orang baru (); console.log (p.getName ()); // zhang san console.log (p.getjob ()); // TeacherVar p2 = orang baru (); p2.name = "li si"; console.log (p2.getname ()); // li siDari kode instan, kita dapat mengetahui bahwa instance objek dapat mengakses nilai dalam prototipe, tetapi tidak dapat menulis ulang nilai dalam prototipe. Jika atribut yang digandakan dengan prototipe didefinisikan dalam instance objek, maka atribut akan memblokir atribut dalam prototipe, tetapi tidak akan ditulis ulang.
4. Kemasan (sebut saja itu untuk saat ini)
var dog = {createGog: function () {var dog = {}; dog.name = "wangwang"; dog.sayhello = function () {console.log ("Hello World!"); }; anjing kembali; }}; var dog = dog.createdog (); dog.sayhello ();Ini untuk merangkum semua kode dan mengembalikan objek instan secara keseluruhan, yang sedikit mirip dengan pola pabrik.
Beberapa metode di atas (disarankan) dari kelas definisi JS adalah semua konten yang saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.