Mari kita selesaikan enkapsulasi dan pewarisan dalam js berorientasikan objek.
1. Enkapsulasi
Terdapat banyak cara untuk melaksanakan enkapsulasi dalam js. Berikut adalah beberapa cara yang biasa digunakan.
1.1 Objek penjanaan mod asal
Tulis ahli kami secara langsung ke dalam objek dan kembalikan mereka dengan fungsi tersebut. Kelemahan: Sukar untuk melihat contoh corak.
Kod:
1.2 Menjana objek corak pembinaan
JS memberikan kita corak penggunaan pembina untuk menjana objek Apa yang dipanggil "pembina" sebenarnya adalah fungsi biasa, tetapi pembolehubah ini digunakan secara dalaman. Apabila kata kunci baharu digunakan untuk menjana contoh pembina, pembolehubah ini akan terikat pada objek contoh.
Terus masukkan kod:
Tidak sukar untuk melihat bahawa objek yang dijana oleh pembina js adalah sama persis dengan objek yang dijana oleh kelas dalam C# Kedua-duanya menggunakan templat untuk mentakrifkan ahli objek dan mewujudkannya melalui kata kunci baharu.
Jana objek Stu yang sama menggunakan kod C#
OK, sekarang kita mempunyai objek asas. Jadi sekarang kita memerlukan kaedah yang biasa kepada semua objek, dan hanya membenarkan kaedah ini dibuat sekali sahaja. (Tidak dibuat berulang kali dengan objek baharu) Apakah yang perlu saya lakukan? Semua orang tahu bahawa dalam C# kita boleh menggunakan ahli statik. Jadi bagaimana untuk melakukannya dalam js?
1.3 Mod Prototaip
Dalam js, setiap pembina mempunyai atribut prototaip Semua sifat dan kaedah objek ini akan diwarisi oleh contoh pembina. Kemudian menambah ahli secara langsung ke prototaip adalah sama dengan mengisytiharkan ahli statik dalam C#.
Kod:
Itu sahaja untuk enkapsulasi. Mari kita lihat bagaimana pewarisan dilaksanakan dalam js?
2
2.1 Pengikat Pembina
Panggil terus panggilan atau gunakan kaedah dalam fungsi anak untuk mengikat pembina objek induk kepada objek anak.
Tengok kod dulu
Kod:
Seperti yang dinyatakan sebelum ini, prototaip adalah bersamaan dengan ahli statik dalam C#, jadi kami menukar semua ahli kelas induk kepada ahli statik kami sendiri untuk mencapai warisan.
Terdapat kelemahan pewarisan melalui prototaip: semua ahli yang diwarisi adalah statik, jadi bagaimana untuk mewarisi ahli objek?
2.3 Salin warisan
Salin semua sifat dan kaedah objek induk ke dalam objek anak untuk mencapai pewarisan.
Kod:
Itu sahaja untuk organisasi berorientasikan objek js Perkara ini tidak statik Anda boleh membuat perubahan mengikut keperluan anda sendiri apabila menggunakannya. Ada pepatah yang sangat bagus, yang betul adalah yang terbaik.
Di sini kami hanya menganalisis enkapsulasi dan warisan Kami akan melakukan beberapa artikel lain pada masa hadapan untuk memberi anda pemahaman yang lebih mendalam tentang pengaturcaraan berorientasikan objek JavaScript. Sudah tentu, ini semua adalah pemahaman peribadi Jika terdapat sebarang ketinggalan, sila hubungi saya.