JavaScript menggunakan warisan prototipe. setiap objek mewarisi properti dan metode dari objek prototipe Show
Kelas tradisional sebagai cetak biru untuk membuat objek, yang digunakan dalam bahasa seperti Java atau Swift, tidak ada di JavaScript. Warisan prototipe hanya berurusan dengan objek Warisan prototipe dapat meniru warisan kelas klasik. Untuk membawa kelas tradisional ke JavaScript, standar ES2015 memperkenalkan sintaks 9. gula sintaksis atas warisan prototipe Posting ini membiasakan Anda dengan kelas JavaScript. cara mendefinisikan kelas, menginisialisasi instance, menentukan bidang dan metode, memahami bidang privat dan publik, memahami bidang dan metode statis Daftar isi1. Definisi. kata kunci kelasKata kunci khusus _9 mendefinisikan kelas dalam JavaScript
Kode di atas mendefinisikan kelas 1. Kurung kurawal _2 membatasi badan kelas. Perhatikan bahwa sintaks ini bernama deklarasi kelas Anda tidak diwajibkan untuk menunjukkan nama kelas. Dengan menggunakan ekspresi kelas, Anda dapat menugaskan kelas ke variabel
Anda dapat dengan mudah mengekspor kelas sebagai bagian dari modul ES2015. Inilah sintaks untuk ekspor default
Dan ekspor bernama
Kelas menjadi berguna saat Anda membuat instance kelas. Instance adalah objek yang berisi data dan perilaku yang dijelaskan oleh kelas Operator _3 membuat instance kelas dalam JavaScript. _4 Misalnya, Anda dapat membuat instance kelas 1 menggunakan operator 3
7 membuat turunan dari kelas 1 2. Inisialisasi. konstruktor()9 adalah metode khusus dalam tubuh kelas yang menginisialisasi instance. Itu adalah tempat di mana Anda menetapkan nilai awal untuk bidang, atau melakukan penyiapan objek apa pun Dalam contoh berikut, konstruktor menyetel nilai awal bidang 0
Konstruktor 1 memiliki satu parameter 0, yang digunakan untuk menetapkan nilai awal bidang 3 Di dalam konstruktor _4 nilainya sama dengan instance yang baru dibuat Argumen yang digunakan untuk membuat instance kelas menjadi parameter konstruktor
0 parameter di dalam konstruktor memiliki nilai 6 Jika Anda tidak menentukan konstruktor untuk kelas, konstruktor default akan dibuat. Konstruktor default adalah fungsi kosong, yang tidak mengubah instance Pada saat yang sama, kelas JavaScript dapat memiliki hingga satu konstruktor 3. BidangBidang kelas adalah variabel yang menyimpan informasi. Bidang dapat dilampirkan ke 2 entitas
Bidang juga memiliki 2 tingkat aksesibilitas
3. 1 Bidang instance publikMari kita lihat kembali cuplikan kode sebelumnya
Ekspresi _7 membuat bidang instance 0 dan memberinya nilai awal Nanti Anda dapat mengakses bidang _0 menggunakan pengakses properti
0 adalah bidang publik karena Anda dapat mengaksesnya di luar badan kelas 1 Saat bidang dibuat secara implisit di dalam konstruktor, seperti dalam skenario sebelumnya, akan sulit untuk memahami daftar bidang. Anda harus menguraikannya dari kode konstruktor Pendekatan yang lebih baik adalah mendeklarasikan bidang kelas secara eksplisit. Apa pun yang dilakukan konstruktor, instance selalu memiliki kumpulan bidang yang sama Proposal bidang kelas memungkinkan Anda menentukan bidang di dalam tubuh kelas. Selain itu, Anda dapat langsung menunjukkan nilai awal
Mari ubah kelas _1 dan nyatakan bidang publik 0 0 4 di dalam tubuh kelas mendeklarasikan bidang publik 0 Bidang publik menyatakan cara seperti itu ekspresif. sekilas melihat deklarasi bidang sudah cukup untuk memahami struktur data kelas Selain itu, bidang kelas dapat langsung diinisialisasi saat deklarasi 1 6 di dalam badan kelas mendeklarasikan bidang 0 dan menginisialisasinya dengan nilai 8 Tidak ada batasan akses atau pembaruan bidang publik. Anda dapat membaca dan menetapkan nilai ke bidang publik di dalam konstruktor, metode, dan di luar kelas 3. 2 Bidang contoh pribadiEnkapsulasi adalah konsep penting yang memungkinkan Anda menyembunyikan detail internal suatu kelas. Seseorang yang menggunakan kelas enkapsulasi hanya bergantung pada antarmuka publik yang disediakan kelas, dan tidak berpasangan dengan detail implementasi kelas Kelas yang diatur dengan mempertimbangkan enkapsulasi lebih mudah diperbarui saat detail implementasi berubah Cara yang baik untuk menyembunyikan data internal suatu objek adalah dengan menggunakan bidang privat. Ini adalah bidang yang dapat dibaca dan diubah hanya di dalam kelas tempat mereka berada. Dunia luar kelas tidak dapat mengubah bidang privat secara langsung
Awali nama bidang dengan simbol khusus 9 untuk menjadikannya pribadi, e. g. _0. Awalan 9 harus disimpan setiap kali Anda bekerja dengan bidang tersebut. mendeklarasikannya, membacanya, atau memodifikasinya Mari pastikan bahwa bidang 2 dapat disetel sekali pada inisialisasi instance 2 _2 adalah bidang pribadi. Anda dapat mengakses dan memodifikasi _2 di dalam tubuh 1. Metode _6 (lebih lanjut tentang metode di ) dapat mengakses bidang pribadi 2 Tetapi jika Anda mencoba mengakses bidang pribadi 2 di luar badan kelas 1, kesalahan sintaks akan terjadi. _0 3. 3 Bidang statis publikAnda juga dapat menentukan bidang pada kelas itu sendiri. bidang statis. Ini sangat membantu untuk mendefinisikan konstanta kelas atau menyimpan informasi khusus untuk kelas Untuk membuat bidang statis di kelas JavaScript, gunakan kata kunci khusus 1 diikuti dengan nama bidang. _2 Mari tambahkan bidang baru 3 yang menunjukkan jenis pengguna. admin atau reguler. Bidang statis 4 dan 5 adalah konstanta berguna untuk membedakan jenis pengguna _3 6 dan 7 mendefinisikan variabel statis di dalam kelas 1. Untuk mengakses bidang statis, Anda harus menggunakan kelas yang diikuti dengan nama bidang. _9 dan 0 3. 4 Bidang statis pribadiKadang-kadang bahkan bidang statis adalah detail implementasi yang ingin Anda sembunyikan. Dalam hal ini, Anda dapat membuat bidang statis menjadi pribadi Untuk menjadikan bidang statis pribadi, awali nama bidang dengan 9 simbol khusus. 2 Katakanlah Anda ingin membatasi jumlah instance dari kelas 1. Untuk menyembunyikan detail tentang batas instance, Anda dapat membuat kolom statis pribadi _4 Bidang statis 4 menetapkan jumlah maksimum instance yang diizinkan, sementara 5 bidang statis menghitung jumlah instance aktual Bidang statis pribadi ini hanya dapat diakses di dalam kelas 1. Tidak ada apa pun dari dunia luar yang dapat mengganggu mekanisme batasan. itulah manfaat enkapsulasi 4. MetodeBidang menyimpan data. Tetapi kemampuan untuk memodifikasi data dilakukan oleh fungsi-fungsi khusus yang merupakan bagian dari kelas. metode Kelas JavaScript mendukung metode instan dan statis 4. 1 Metode instanMetode instans dapat mengakses dan mengubah data instans. Metode instan dapat memanggil metode instan lainnya, serta metode statis apa pun Sebagai contoh, mari tentukan metode ________22______6 yang mengembalikan nama di kelas 1 5 9 adalah metode di dalam kelas 1. _1 adalah pemanggilan metode. itu mengeksekusi metode dan mengembalikan nilai yang dihitung jika ada Dalam metode kelas, serta dalam konstruktor, nilai 4 sama dengan instance kelas. Gunakan _4 untuk mengakses data instance. _4, atau bahkan memanggil metode lain. _5 Mari tambahkan metode baru 6 yang memiliki satu parameter dan memanggil metode lain _6 _7 adalah metode kelas 1 yang menerima satu parameter 9. Lebih dari itu, ia mengeksekusi metode lain dari instance 00 untuk mendapatkan nama pengguna Metode juga bisa bersifat pribadi. Untuk membuat awalan metode pribadi namanya dengan 9 Mari jadikan metode _6 pribadi _7 03 adalah metode pribadi. Di dalam metode _6 Anda memanggil metode pribadi seperti itu. _05 Menjadi pribadi, _03 tidak dapat dipanggil di luar 1 badan kelas 4. 2 Getter dan setterPengambil dan penyetel meniru bidang biasa, tetapi dengan kontrol lebih besar tentang cara bidang diakses dan diubah Pengambil dijalankan pada upaya untuk mendapatkan nilai bidang, sedangkan penyetel pada upaya untuk menetapkan nilai Untuk memastikan bahwa properti 0 dari 1 tidak boleh kosong, mari bungkus bidang pribadi 10 dalam pengambil dan penyetel _8 11 pengambil dijalankan saat Anda mengakses nilai bidang. _12 Saat _13 dijalankan saat bidang diperbarui 14. Setter melempar kesalahan jika nilai baru adalah string kosong 4. 3 Metode statisMetode statis adalah fungsi yang dilampirkan langsung ke kelas. Mereka memegang logika yang terkait dengan kelas, bukan dengan instance kelas Untuk membuat metode statis gunakan kata kunci khusus 1 diikuti dengan sintaks metode biasa. _16 Saat bekerja dengan metode statis, ada 2 aturan sederhana yang perlu diingat
Misalnya, mari buat metode statis yang mendeteksi apakah pengguna dengan nama tertentu sudah diambil _9 17 adalah metode statis yang menggunakan bidang pribadi statis 18 untuk memeriksa nama yang diambil Metode statis dapat bersifat pribadi. _19. Sekali lagi, mereka mengikuti aturan privasi. Anda dapat memanggil metode statis pribadi hanya di dalam badan kelas 5. Warisan. memanjangKelas-kelas dalam JavaScript mendukung pewarisan tunggal menggunakan kata kunci ________5______20 Dalam ekspresi 21 kelas 22 mewarisi dari 23 konstruktor, bidang, dan metode Misalnya, mari buat kelas anak baru 24 yang memperluas kelas induk 1 0 24 mewarisi dari 1 konstruktor, metode 6 dan bidang 0. Selain itu, kelas _24 mendeklarasikan bidang baru 31 Perhatikan bahwa anggota pribadi dari kelas induk tidak diwarisi oleh kelas anak 5. 1 Induk konstruktor. super() di konstruktor()Jika Anda ingin memanggil konstruktor induk di kelas anak, Anda perlu menggunakan fungsi khusus 32 yang tersedia di konstruktor anak Sebagai contoh, mari buat _24 konstruktor memanggil konstruktor induk dari 1, serta menginisialisasi kolom posts _1 35 di dalam kelas anak 24 mengeksekusi konstruktor dari kelas induk 1 Perhatikan bahwa di dalam konstruktor anak Anda harus menjalankan 32 sebelum menggunakan kata kunci 4. Memanggil _32 memastikan bahwa konstruktor induk menginisialisasi instance _2 5. 2 Contoh Induk. super dalam metodeJika Anda ingin mengakses metode induk di dalam metode anak, Anda dapat menggunakan pintasan khusus 41 _3 _6 dari kelas anak 24 mengakses metode 44 langsung dari kelas induk 1 Fitur ini disebut metode overriding Perhatikan bahwa Anda juga dapat menggunakan _41 dengan metode statis, untuk mengakses metode statis induk 6. Pengecekan tipe objek. contoh47 adalah operator yang menentukan apakah 48 adalah turunan dari 49 Mari kita lihat operator _50 beraksi _4 51 adalah turunan dari kelas 1, 53 dievaluasi menjadi 54 Objek kosong 55 bukan turunan dari 1, demikian pula 57 adalah 58 50 bersifat polimorfik. operator mendeteksi anak sebagai turunan dari kelas induk 5 60 adalah turunan dari kelas anak 24. Operator _62 dievaluasi menjadi 54 Pada saat yang sama _24 adalah kelas anak dari 1. Jadi _66 dievaluasi menjadi 54 juga Bagaimana jika Anda ingin menentukan kelas instance yang tepat? _6 7. Kelas dan prototipeSaya harus mengatakan bahwa sintaks kelas dalam JavaScript melakukan pekerjaan yang bagus untuk mengabstraksi dari warisan prototipe. Untuk mendeskripsikan sintaks _9 saya bahkan belum pernah menggunakan istilah prototype Tetapi kelas dibangun di atas warisan prototipe. Setiap kelas adalah fungsi, dan membuat instance kapan Dua cuplikan kode berikut ini setara Versi kelas _7 Versi menggunakan prototipe _8 Sintaks kelas jauh lebih mudah untuk bekerja jika Anda terbiasa dengan mekanisme pewarisan klasik bahasa Java atau Swift Bagaimanapun, bahkan jika Anda menggunakan sintaks kelas dalam JavaScript, saya menyarankan Anda untuk memiliki pemahaman yang baik tentang pewarisan prototipe 8. Ketersediaan fitur kelasFitur kelas yang disajikan dalam postingan ini tersebar di ES2015 dan proposal pada tahap 3 Pada akhir 2019, fitur kelas dibagi
9. KesimpulanKelas JavaScript menginisialisasi instance dengan konstruktor, menentukan bidang dan metode. Anda dapat melampirkan bidang dan metode bahkan pada kelas itu sendiri menggunakan kata kunci 1 Warisan dicapai dengan menggunakan 20 kata kunci. Anda dapat dengan mudah membuat kelas anak dari orang tua. 41 kata kunci digunakan untuk mengakses kelas induk dari kelas anak Untuk memanfaatkan enkapsulasi, jadikan bidang dan metode pribadi untuk menyembunyikan detail internal kelas Anda. Bidang privat dan nama metode harus diawali dengan 9 Kelas-kelas dalam JavaScript menjadi semakin nyaman digunakan Apa pendapat Anda tentang menggunakan _9 untuk mengawali properti pribadi? Suka postingannya?Sarankan Perbaikan Posting berkualitas ke kotak masuk AndaSaya secara teratur menerbitkan posting yang berisi
Berlangganan buletin saya untuk mengirimkannya langsung ke kotak masuk Anda LanggananBergabunglah dengan 6904 pelanggan lainnya Tentang Dmitri PavlutinPenulis dan pelatih teknologi. Rutinitas harian saya terdiri dari (namun tidak terbatas) minum kopi, coding, menulis, coaching, mengatasi kebosanan 😉 Sekarang bekerja sebagai pengembang open source penuh waktu pada proyek Readapt - bertujuan untuk membuat web dapat diakses oleh semua orang Bagaimana Anda membuat objek baru dari kelas di JavaScript?Untuk membuat objek, gunakan kata kunci new dengan konstruktor Object() , seperti ini. const person = Obyek baru(); . orang.
Bagaimana Anda membuat objek di kelasnya sendiri?Untuk membuat objek Main , tentukan nama kelas, diikuti dengan nama objek, dan gunakan kata kunci baru. . Contoh. Buat objek bernama " myObj " dan cetak nilai x. kelas publik Utama { int x = 5; . . Contoh. . Kedua. Jawa Bisakah kita membuat kelas dan objek dalam JavaScript?Javascript tidak menggunakan pewarisan berbasis kelas. Jadi, Anda tidak dapat membuat kelas dalam Javascript , kecuali menirunya menggunakan solusi yang IMHO kikuk dan rumit. Javascript adalah bahasa prototipe. Menggunakan kata kunci baru membuat objek baru berdasarkan properti prototype dari objek konstruktor.
Bagaimana cara membuat objek di JS?Membuat Objek JavaScript . Buat objek tunggal, menggunakan literal objek Buat satu objek, dengan kata kunci baru Tentukan konstruktor objek, lalu buat objek dari tipe yang dibangun Buat objek menggunakan Object. membuat() |