Hampir 20 tahun yang lalu, apabila Javascript dilahirkan, ia hanyalah bahasa skrip web yang mudah. Jika anda terlupa mengisi nama pengguna anda, amaran akan muncul.
Kini, ia telah menjadi hampir mahakuasa, dari hujung depan hingga hujung belakang, dengan pelbagai jenis kegunaan yang luar biasa. Pengaturcara menggunakannya untuk menyelesaikan projek yang semakin besar.
Kerumitan kod Javascript juga telah meningkat. Sudah lama menjadi perkara biasa bagi satu halaman web mengandungi 10,000 baris kod Javascript. Pada tahun 2010, seorang jurutera mendedahkan bahawa panjang kod Gmail ialah 443,000 baris!
Menulis dan mengekalkan kod kompleks tersebut memerlukan strategi modular. Pada masa ini, pendekatan arus perdana dalam industri adalah menggunakan "pengaturcaraan berorientasikan objek". Oleh itu, bagaimana untuk melaksanakan pengaturcaraan berorientasikan objek dalam Javascript telah menjadi topik hangat.
Masalahnya ialah sintaks Javascript tidak menyokong "kelas" (kelas), menjadikan kaedah pengaturcaraan berorientasikan objek tradisional tidak dapat digunakan secara langsung. Pengaturcara telah melakukan banyak penyelidikan tentang cara mensimulasikan "kelas" dalam Javascript. Artikel ini meringkaskan tiga cara untuk mentakrifkan "kelas" dalam Javascript, membincangkan ciri-ciri setiap kaedah dan memberi tumpuan kepada kaedah terbaik di mata saya.
============================================
Tiga cara untuk menentukan kelas dalam Javascript
Dalam pengaturcaraan berorientasikan objek, kelas ialah templat untuk objek, yang mentakrifkan sifat dan kaedah yang biasa kepada kumpulan objek yang sama (juga dipanggil "contoh").
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.
Atribut dan kaedah kelas juga boleh ditakrifkan pada objek prototaip pembina.
2. kaedah Object.create()
Untuk menyelesaikan kekurangan "kaedah pembina" dan menjana objek dengan lebih mudah, edisi kelima ECMAScript, piawaian antarabangsa untuk Javascript (edisi ketiga sedang popular), mencadangkan kaedah baharu Object.create() .
Dengan kaedah ini, "kelas" ialah objek, bukan fungsi.
3. Kaedah Minimalisme
Pengaturcara Belanda Gabor de Mooij mencadangkan kaedah baharu yang lebih baik daripada Object.create(), yang dipanggilnya sebagai "pendekatan minimalis". Ini juga kaedah yang saya cadangkan.
3.1 Pembungkusan
Kaedah ini tidak menggunakan ini dan prototaip, dan kod ini sangat mudah untuk digunakan Ini mungkin sebab ia dipanggil "kaedah minimalis".
Pertama sekali, ia juga menggunakan objek untuk mensimulasikan "kelas". Dalam kelas ini, tentukan pembina createNew() untuk menjana kejadian.
Kemudian, dalam createNew(), tentukan objek contoh dan gunakan objek contoh ini sebagai nilai pulangan.
Apabila menggunakannya, panggil kaedah createNew() untuk mendapatkan objek contoh.
Kelebihan kaedah ini ialah ia mudah difahami, mempunyai struktur yang jelas dan elegan serta mematuhi konstruk "pengaturcaraan berorientasikan objek" tradisional, jadi ciri berikut boleh digunakan dengan mudah.
3.2 Warisan
Biar satu kelas mewarisi kelas lain, yang sangat mudah untuk dilaksanakan. Cuma panggil kaedah createNew() yang terakhir dalam kaedah createNew() yang pertama.
Tentukan dahulu kelas Haiwan.
Kemudian, dalam kaedah createNew() Cat, panggil kaedah createNew() Animal.
3.3 Harta persendirian dan kaedah persendirian
Dalam kaedah createNew(), semua kaedah dan sifat yang tidak ditakrifkan pada objek kucing adalah peribadi.
3.4 Perkongsian Data
Kadangkala, kita memerlukan semua objek contoh untuk dapat membaca dan menulis data dalaman yang sama. Pada masa ini, hanya merangkum data dalaman di dalam objek kelas dan di luar kaedah createNew().
Kemudian, hasilkan dua objek contoh:
(Tamat)