Rumah >hujung hadapan web >tutorial js >Perbincangan ringkas tentang merealisasikan kelas berorientasikan objek dalam pengetahuan JavaScript_Basic
Objek ialah apa sahaja yang orang mahu kaji Daripada integer yang paling mudah kepada kapal terbang yang kompleks, ia boleh dianggap sebagai objek bukan sahaja, tetapi juga peraturan abstrak, rancangan atau peristiwa. --Dipetik daripada Ensiklopedia Baidu
Pengaturcaraan berorientasikan objek kini merupakan model pengaturcaraan yang paling popular. Tetapi apa yang mengecewakan ialah JavaScript, aplikasi front-end yang paling banyak digunakan, tidak menyokong pengaturcaraan berorientasikan objek.
JavaScript tidak mempunyai aksara kawalan akses, ia tidak mempunyai kelas kata kunci untuk mentakrifkan kelas, ia tidak menyokong lanjutan atau bertindih untuk warisan, dan ia tidak menggunakan maya untuk menyokong fungsi maya Walau bagaimanapun, Javascript adalah fleksibel bahasa Mari kita ikuti Mari kita lihat bagaimana Javascript tanpa kelas kata kunci melaksanakan definisi kelas dan mencipta objek.
Tentukan kelas dan cipta objek contoh kelas
Dalam Javascript, kami menggunakan fungsi untuk menentukan kelas, seperti berikut:
Anda mungkin berkata, ragu-ragu? Bukankah ini fungsi penentu? Ya, ini ialah fungsi takrifan Kami mentakrifkan fungsi Bentuk dan memulakan x dan y. Walau bagaimanapun, jika anda melihatnya dari sudut lain, ini adalah untuk mentakrifkan kelas Shape, yang mempunyai dua atribut x dan y, dan nilai awal masing-masing adalah 1 dan 2 Walau bagaimanapun, kata kunci yang kami gunakan untuk mentakrifkan kelas adalah fungsi bukannya kelas.
Kemudian, kita boleh mencipta objek aShape kelas Shape, seperti berikut:
Tentukan harta awam dan persendirian
Kami telah mencipta objek aShape, tetapi apabila kami cuba mengakses sifatnya, ralat berlaku, seperti berikut:
Tentukan kaedah awam dan peribadi
Dalam Javascript, fungsi adalah contoh kelas Fungsi secara tidak langsung mewarisi daripada Object Oleh itu, kita boleh menggunakan kaedah tugasan untuk mencipta fungsi menetapkan fungsi kepada kelas Pembolehubah atribut, maka pembolehubah atribut ini boleh dipanggil kaedah kerana ia adalah fungsi boleh laku. Kodnya adalah seperti berikut:
Dengan cara ini anda tidak boleh menggunakan aShape.draw untuk memanggil fungsi ini.
Pembina
Javascript tidak menyokong OOP, dan sudah tentu tiada pembina Walau bagaimanapun, kita boleh mensimulasikan pembina sendiri dan biarkan ia dipanggil secara automatik apabila objek dibuat seperti berikut:
Pada penghujung Shape, kami secara buatan memanggil fungsi init Kemudian, apabila objek Shape dicipta, init akan sentiasa dipanggil secara automatik dan pembina kami boleh disimulasikan.
Pembina dengan parameter
Bagaimana untuk membuat pembina mengambil parameter? Sebenarnya, ia sangat mudah. Hanya tulis parameter yang akan dihantar ke dalam senarai parameter fungsi, seperti:
Dengan cara ini, kita boleh mencipta objek seperti ini:
Sifat statik dan kaedah statik
Bagaimana untuk menentukan sifat dan kaedah statik dalam Javascript? Seperti yang ditunjukkan di bawah:
Akses sifat awam dan peribadi kelas ini dalam kaedah
Akses sifat anda sendiri dalam kaedah kelas Javascript mempunyai kaedah akses yang berbeza untuk sifat awam dan sifat peribadi. Sila lihat kod berikut:
Nota tentang ini
Menurut pengalaman pengarang, ini dalam kelas tidak selalu menunjuk ke objek kita sendiri Sebab utama adalah kerana Javascript bukan bahasa OOP Selain itu, fungsi dan kelas ditakrifkan dengan fungsi, yang sudah tentu akan menyebabkan beberapa masalah kecil.
Situasi di mana penunjuk ini menunjukkan ralat biasanya dalam pemprosesan acara Kami mahu fungsi ahli sesuatu objek bertindak balas kepada peristiwa apabila peristiwa dicetuskan, sistem akan memanggil fungsi ahli kami ini Penunjuk bukan lagi objek kita sendiri Sudah tentu, memanggil ini dalam fungsi ahli pasti akan menyebabkan ralat.
Penyelesaiannya ialah kita menyimpan ini dalam atribut peribadi pada permulaan mentakrifkan kelas Pada masa hadapan, kita boleh menggunakan atribut ini untuk menggantikan ini. Saya menggunakan kaedah ini untuk menggunakan penunjuk ini yang agak selamat dan tidak bimbang~
Mari ubah suai kod untuk menyelesaikan masalah ini. Bandingkan kod dalam Bahagian 6 dan anda akan faham:
Di atas kita bercakap tentang cara mentakrifkan kelas dalam Javascript, mencipta objek kelas, mencipta sifat dan kaedah awam dan persendirian, mencipta sifat dan kaedah statik, mensimulasikan pembina dan membincangkan perkara ini yang terdedah kepada ralat.
Itu sahaja untuk bercakap tentang pelaksanaan OOP dalam Javascript Di atas adalah kandungan yang paling praktikal Secara amnya, Javascript digunakan untuk mentakrifkan kelas dan kod di atas sudah cukup untuk mencipta objek. Sudah tentu, anda juga boleh menggunakan mootools atau prototaip untuk menentukan kelas dan mencipta objek. Saya telah menggunakan rangka kerja mootools dan saya fikir ia adalah sangat baik ia mempunyai simulasi kelas Javascript yang lebih lengkap dan menyokong warisan kelas. Sudah tentu, jika anda menggunakan rangka kerja, anda perlu memasukkan fail pengepala js yang berkaitan dalam halaman web anda, jadi saya masih berharap pembaca boleh membuat kelas tanpa rangka kerja Dengan cara ini, kod itu lebih cekap, dan anda juga boleh lihat , ia tidak menyusahkan untuk membuat kelas yang mudah~