Latihan 1 dari materi Factory Pattern di Design Patterns — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi function createShape(type, size) supaya mengembalikan object berisi type, area (luasnya), dan method describe().
"circle": lingkaran berjari-jari size. Luasnya Math.PI * size * size, dibulatkan ke 2 desimal dengan toFixed(2).
"triangle": segitiga siku-siku yang kedua sisi tegaknya sepanjang size. Luasnya size * size / 2.
Tipe lain: lempar new Error("Unknown shape").
Tiap object punya describe() yang mengembalikan "<type> with area <area>".
Kode di bawah function sudah ada di starter dan tetap. Console harus mencetak empat baris ini, berurutan:
circle with area 78.54
square with area 16
triangle with area 18
Unknown shape (dicetak oleh catch)
Yang juga dinilai: createShape("hexagon", 3) harus melempar error dengan pesan Unknown shape, dan createShape("square", 7).describe() + "|" + createShape("triangle", 10).area harus menghasilkan square with area 49|50.
Hint
Satu function memilih bentuk object dari type, jadi pemanggilnya gak perlu tahu rumus apa pun. Tiap cabang if membuat object { type, area }.
Lingkaran: (Math.PI * size * size).toFixed(2). Persegi: size * size. Segitiga: size * size / 2. Tipe lain: throw new Error("Unknown shape"). Sesudah itu tambahkan describe yang membaca this.type dan this.area.
shape.describe = function () { return this.type + " with area " + this.area; }; return shape;
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...