Setel dan kurangi penghitung
Modifikasi kode dari makeCounter()
jadi penghitungnya juga bisa mengurangi dan menyetel ulang angkanya:
counter()
harus mengembalikan angka selanjutnya (seperti sebelumnya).counter.set(value)
harus menyetel ulang penghitungnya jadivalue
.counter.decrease()
harus mengurangi angka penghitungnya dengan 1.
Lihat kode pada sandbox untuk contoh penggunaan yang lengkap.
Catatan. Kamu bisa menggunakan closure atau properti fungsi untuk menyimpan perhitungan yang sekarang. Atau tulis kedua variannya.
Solusinya adalah menggunakan count
didalam variabel lokal, tapi metode tambahan ditulis tepat didalam counter
nya. Mereka membagi lingkungan leksikan luar yang sama dan juga bisa mengakses count
yang sekarang.
function makeCounter() {
let count = 0;
function counter() {
return count++;
}
counter.set = value => count = value;
counter.decrease = () => count--;
return counter;
}