DEV Community

Cover image for Membuat Objek Dengan Melakukan Kloning
Aris アリス
Aris アリス

Posted on

5 4

Membuat Objek Dengan Melakukan Kloning

Hai teman-teman 👋

Kali ini saya akan membagikan tentang cara membuat objek dengan melakukan kloning. Pada umumnya ketika kita membuat sebuah class seperti contoh berikut:

class Store {
    constructor(name, city, category) {
        this.name = name;
        this.city = city;
        this.category = category;
    }
}
Enter fullscreen mode Exit fullscreen mode

Untuk memudahkan kita dalam melakukan kloning, maka perlu modifikasi pada class di atas menjadi seperti berikut:

class Store {
    constructor(name, city, category) {
        this.name = name;
        this.city = city;
        this.category = category;
    }

    setName(name) {
        this.name = name;
        return this;
    }

    setCity(city) {
        this.city = city;
        return this;
    }

    setCategory(category) {
        this.category = category;
        return this;
    }

    clone() {
        return new Store(this.name, this.city, this.category);
    }
}
Enter fullscreen mode Exit fullscreen mode

Untuk cara penggunaannya bisa dilihat seperti kode berikut:

const store1 = new Store('Void', 'Jakarta', 'Gadget');
const store2 = store1.clone().setCity('Bandung');
const store3 = store2.clone().setName('Void Apparel').setCategory('Fashion');
Enter fullscreen mode Exit fullscreen mode

Pada kode di atas, saya membuat toko gadget dengan nama Void yang berlokasi di Jakarta. Kemudian saya membuat lagi toko yang sama akan tetapi berlokasi di Bandung. Terakhir, saya membuat toko pakaian dengan nama Void Apparel dengan menggunakan properti dari toko kedua. Kesimpulannya, kita dapat memanfaatkan properti dari objek lain yang sudah ada dan mengubah beberapa bagian saja untuk membuat objek baru. Kita tidak harus selalu membuat objek dari nol.

Demikian yang dapat saya bagikan, apabila ada yang perlu dikoreksi silahkan share di kolom komentar. 😁

Top comments (0)

Need a better mental model for async/await?

Check out this classic DEV post on the subject.

⭐️🎀 JavaScript Visualized: Promises & Async/Await

async await

Instrument, monitor, fix: a hands-on debugging session

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

Tune in to the full event

DEV is partnering to bring live events to the community. Join us or dismiss this billboard if you're not interested. ❤️