Rumah >hujung hadapan web >tutorial js >Bercakap secara ringkas tentang kemahiran penggunaan semula mod_javascript kod javascript

Bercakap secara ringkas tentang kemahiran penggunaan semula mod_javascript kod javascript

WBOY
WBOYasal
2016-05-16 16:17:291348semak imbas

Terdapat prinsip terkenal untuk penggunaan semula kod, yang dicadangkan oleh GoF: memberi keutamaan kepada komposisi objek daripada warisan kelas. Dalam JavaScript, tiada konsep kelas, jadi penggunaan semula kod tidak terhad kepada warisan kelas. Terdapat banyak cara untuk mencipta objek dalam JavaScript Terdapat pembina, anda boleh menggunakan baharu untuk mencipta objek, dan anda boleh mengubah suai objek secara dinamik. Warisan bukan kelas JavaScript (yang boleh dipanggil model warisan moden) juga mempunyai banyak kaedah penggunaan semula, seperti menggunakan objek lain untuk digabungkan ke dalam objek yang diperlukan, teknologi pencampuran objek, meminjam dan menggunakan semula kaedah yang diperlukan.

Mod lalai mod warisan kelas

Contoh dua pembina Ibu Bapa dan Anak:

Salin kod Kod adalah seperti berikut:

fungsi Induk(nama){
this.name = nama||"Adam";
}
Parent.prototype.say = {
kembalikan this.name;
};
fungsi Anak(nama){
}
mewarisi(Anak, Ibu Bapa);

Berikut ialah kaedah pelaksanaan fungsi warisan boleh guna semula inherit():

Salin kod Kod adalah seperti berikut:

fungsi mewarisi(C,P){
C.prototaip = P();
}

Atribut prototaip di sini harus menunjuk kepada objek, bukan fungsi, jadi ia mesti menunjuk kepada contoh yang dibuat oleh pembina induk, bukan kepada pembina itu sendiri.

Selepas ini, apabila objek Kanak-kanak dicipta, fungsinya akan diperolehi daripada contoh Induk melalui prototaip:

Salin kod Kod adalah seperti berikut:

var kid =New Child();
kid.say();//"Adam"

Rantai prototaip selepas memanggil warisan:

Tambahkan lagi sifat kanak-kanak:

Salin kod Kod adalah seperti berikut:

var kid = new Child();
kid.name = "Patrick";
kid.say();//"Patrick"

Perubahan dalam rantaian prototaip:

Anda boleh mencari nama dalam sifat objek anda sendiri, jadi anda tidak perlu mencari rantai prototaip.

Salah satu kelemahan menggunakan corak di atas ialah sifat dua objek diwarisi pada masa yang sama, iaitu atribut yang ditambahkan pada ini dan atribut prototaip. Selalunya, sifat-sifat ini sendiri tidak diperlukan.

Satu lagi kelemahan ialah penggunaan inherit() inheritance tidak menyokong parameter lulus kepada sub-pembina, contohnya:

Salin kod Kod adalah seperti berikut:

var s = new Child("Seth");
s.say();//"Adam"

Hasil ini tidak dijangkakan walaupun pembina anak boleh menghantar parameter kepada pembina induk, mekanisme pewarisan ini mesti dilaksanakan semula setiap kali objek anak diperlukan, dan ia tidak cekap kerana pada akhirnya Objek induk akan menjadi dicipta semula.

Artikel ini berakhir di sini Kami akan terus mengemas kini mod penggunaan semula kod JavaScript yang lain pada masa hadapan.

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