Rumah  >  Artikel  >  hujung hadapan web  >  Apakah tiga kaedah untuk menentukan kelas dalam javascript

Apakah tiga kaedah untuk menentukan kelas dalam javascript

WBOY
WBOYasal
2022-02-21 17:13:532560semak imbas

Tiga cara untuk mentakrifkan kelas dalam JavaScript: 1. Gunakan pembina untuk mentakrifkan kelas, sintaksnya ialah "nama fungsi(){this.name=value;}" 2. Gunakan "Object. kaedah create()" Tentukan kelas; 3. Gunakan kaedah "createNew()" untuk mentakrifkan kelas.

Apakah tiga kaedah untuk menentukan kelas dalam javascript

Persekitaran pengendalian tutorial ini: sistem Windows 10, versi JavaScript 1.8.5, komputer Dell G3.

Apakah tiga kaedah untuk mentakrifkan kelas dalam JavaScript

Dalam pengaturcaraan berorientasikan objek, kelas ialah templat objek dan mentakrifkan kumpulan objek yang sama (juga dipanggil "contoh? "). ) sifat dan kaedah biasa.

Bahasa JavaScript tidak menyokong "kelas", tetapi anda boleh menggunakan beberapa penyelesaian untuk mensimulasikan "kelas".

1. Kaedah Pembina

Ini adalah kaedah klasik dan kaedah yang mesti diajar dalam buku teks. Ia menggunakan pembina untuk mensimulasikan "kelas" dan menggunakan kata kunci ini secara dalaman untuk merujuk kepada objek contoh.

function Cat(){
  this.name = "大毛";
}

Apabila menjana tika, gunakan kata kunci baharu.

var cat1 = new Cat();
alert(cat1.name);   //大毛

Atribut dan kaedah kelas juga boleh ditakrifkan pada objek prototaip pembina.

Cat.prototype.makeSound = function(){
  alert("喵喵喵");
}

Untuk pengenalan terperinci kepada kaedah ini, sila lihat siri artikel "Pengaturcaraan Berorientasikan Objek JavaScript", saya tidak akan menerangkan butiran di sini. Kelemahan utamanya ialah ia rumit untuk mengajar, menggunakan ini dan prototaip, dan sangat susah payah untuk menulis dan membaca.

2. Kaedah Object.create()

Untuk menyelesaikan kekurangan "kaedah pembina" dan menjana objek dengan lebih mudah, JavaScript Edisi kelima ECMAScript standard antarabangsa (edisi ketiga sedang popular) mencadangkan kaedah baharu Object.create().

Menggunakan kaedah ini, "kelas" ialah objek, bukan fungsi.

var Cat = {
  name: "大毛",
  makeSound: function(){
    alert("喵喵喵");
  }
};

Kemudian, gunakan terus Object.create() untuk menjana tika tanpa menggunakan baharu.

var cat1 = Object.create(Cat);
alert(cat1.name);   //大毛
cat1.makeSound();   //喵喵喵

Pada masa ini, versi terkini semua penyemak imbas utama (termasuk IE9) telah menggunakan kaedah ini. Jika anda menemui penyemak imbas lama, anda boleh menggunakan kod berikut untuk menggunakan kod itu sendiri.

if(!Object.create){
  Object.create = function(o){
    function F(){};
    F.prototype = o;
    return new F();
  }
}

Kaedah ini lebih mudah daripada "kaedah pembina", tetapi ia tidak boleh melaksanakan sifat persendirian dan kaedah persendirian, ia juga tidak boleh berkongsi data antara objek contoh dan simulasi "kelas" tidak cukup komprehensif .

3. Kaedah Minimalis

Pengaturcara Belanda Gabor de Mooij mencadangkan kaedah baharu yang lebih baik daripada kaedah Object.create() yang mana ia memanggil "pendekatan minimalis". Ini juga kaedah yang saya cadangkan.

3.1 Enkapsulasi

Kaedah ini tidak terpakai untuk ini dan prototaip, dan kod ini sangat mudah untuk digunakan, itulah sebabnya ia dipanggil "kaedah minimalis".

Pertama sekali, ia juga menggunakan objek untuk mensimulasikan "kelas". Dalam kelas ini, tentukan pembina caeateNew() untuk menjana kejadian.

var Cat = {
  createNew: function(){
    //some code here
  }
};

Kemudian, dalam carateNew(), takrifkan objek contoh dan gunakan objek contoh ini sebagai nilai pulangan.

var Cat = {
  createNew: function(){
    var cat = {};
    cat.name = "大毛";
    car.makeSound = function(){
      alert("喵喵喵");
    };
  }
};

Apabila menggunakannya, panggil kaedah createNew() untuk mendapatkan objek instance.

var cat1 = Cat.createNew();
cat1.makeSound();   //喵喵喵

Kelebihan kaedah ini ialah ia mudah difahami, mempunyai struktur yang jelas dan elegan, dan mematuhi konstruk "pengaturcaraan berorientasikan objek" tradisional, jadi ciri berikut boleh digunakan dengan mudah .

Cadangan berkaitan: Tutorial pembelajaran javascript

Atas ialah kandungan terperinci Apakah tiga kaedah untuk menentukan kelas dalam javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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