Enkapsulasi
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan JavaScript di Coddy. Pelajaran 17 dari 56.
Enkapsulasi adalah proses menggabungkan data di dalam sebuah class menjadi satu unit.
Ini membantu membatasi akses langsung ke data class, sehingga kita dapat mencegah perubahan data yang tidak disengaja.
Mari kita lihat enkapsulasi dalam contoh sederhana. Buat object dasar dengan property publik:
const user = {
name: "John",
email: "john@example.com"
};Siapa pun dapat mengakses dan mengubah property ini secara langsung:
user.name = "Jane"; // Mudah diubah dari luar
console.log(user.email); // Mudah diakses dari luarPendekatan yang lebih terenkapsulasi menggunakan closure untuk menyembunyikan data:
function createUser(name, email) {
// Variabel-variabel ini bersifat privat (terenkapsulasi)
let userName = name;
let userEmail = email;
// Kembalikan object dengan method untuk berinteraksi dengan data privat
return {
getName: function() {
return userName;
},
getEmail: function() {
return userEmail;
},
setName: function(newName) {
userName = newName;
}
};
}
const encapsulatedUser = createUser("John", "john@example.com");Sekarang, untuk berinteraksi dengan data:
console.log(encapsulatedUser.getName()); // "John"
encapsulatedUser.setName("Jane");
console.log(encapsulatedUser.getName()); // "Jane"
// Tidak bisa mengakses data secara langsung
console.log(encapsulatedUser.userName); // undefinedTantangan
Kamu diberi kode yang menggunakan enkapsulasi untuk melindungi data pengguna. Tugasmu adalah menambahkan method getAge() untuk mengakses usia.
Pengujian akan memeriksa:
- method
getAge()tersedia - Method tersebut mengembalikan usia yang benar
- Informasi usia tetap privat
Output yang Diharapkan:
john_doe
25
Coba sendiri
import { createUser } from './createUser.js';
// Kode pengujian, jangan ubah
const user = createUser("john_doe", 25);
console.log(user.getUsername()); // Seharusnya menghasilkan output "john_doe"
console.log(user.getAge()); // Seharusnya menghasilkan output 25
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pemrograman Berorientasi Objek
1Object dan Kata Kunci this
Tinjauan Singkat: objectMenambahkan method ke objectMemahami Kata Kunci thisFungsi KonstruktorKata Kunci newTantangan Rangkuman7Pewarisan & Kata Kunci extends
PewarisanHubungan "is-a"Kata Kunci extendsmethod super()Mewarisi property & methodTantangan Rangkuman2Mengatur Kode
Apa itu module?Mengekspor dengan exportMengimpor dengan importEkspor default vs. ekspor bernama8Mengatur Kode OOP
Mengatur class ke dalam module11Proyek: Perender Bentuk
Penyiapan: class Shape & EksporPewarisan class CircleOverride & Method LuasPenghitung Shape Statis14Sistem Manajemen Perpustakaan
Merancang PerpustakaanClass Book dengan CompositionValidasi Penulis Buku9Method dan property Statis
Level class vs. level instanceProperty StatisMethod Utilitas StatisTantangan RangkumanLatihan sendiri: Compiler JavaScript online