method yang mengubah state
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan JavaScript di Coddy. Pelajaran 15 dari 56.
Method dalam class JavaScript dapat mengubah state (property) suatu object. Ini adalah salah satu fitur utama pemrograman berorientasi object.
Mari buat class BankAccount sederhana:
class BankAccount {
constructor(owner, balance = 0) {
this.owner = owner;
this.balance = balance;
}
deposit(amount) {
this.balance += amount;
}
}Sekarang mari buat sebuah instance dan ubah state-nya:
const johnsAccount = new BankAccount("John", 100);
console.log(johnsAccount.balance); // Output: 100
johnsAccount.deposit(50);
console.log(johnsAccount.balance); // Output: 150Dalam contoh ini, method deposit() mengubah state internal (property balance) dari instance BankAccount.
Kita bisa menambahkan lebih banyak method yang mengubah state:
class BankAccount {
constructor(owner, balance = 0) {
this.owner = owner;
this.balance = balance;
}
deposit(amount) {
this.balance += amount;
}
withdraw(amount) {
if (amount <= this.balance) {
this.balance -= amount;
}
}
transfer(amount, toAccount) {
if (amount <= this.balance) {
this.balance -= amount;
toAccount.balance += amount;
}
}
}Sekarang kita bisa mengelola rekening bank kita dengan berbagai cara.
Tantangan
Kamu diberi sebuah class Thermostat. Tugasmu adalah menambahkan method untuk mengubah keadaan suhunya:
increaseTemp()- menaikkan suhu sebesar 1 derajatdecreaseTemp()- menurunkan suhu sebesar 1 derajat
Coba sendiri
import { Thermostat } from './thermostat.js';
// Kode pengujian, jangan diubah
const livingRoom = new Thermostat("Living Room", 20);
livingRoom.increaseTemp();
livingRoom.increaseTemp();
console.log(livingRoom.currentTemp); // Seharusnya menghasilkan output 22
livingRoom.decreaseTemp();
console.log(livingRoom.currentTemp); // Seharusnya menghasilkan output 21
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