Home > oop > Inheritance di JavaScript

Inheritance di JavaScript

Berbeda dengan pada C++ dan Java, implementasi konsep inheritance di JavaScript tidak hanya ada satu, tapi ada beberapa. Secara umum, pola-pola tersebut dapat dikelompokkan menjadi dua: berbasis fungsi konstruktor dan berbasis objek. Pada kelompok pertama, kita akan memanfaatkan properti fungsi konstruktor parent object agar bisa diwariskan menjadi properti fungsi konstruktor child object (ingat, di JavaScript, fungsi adalah object yang punya properti dan bahkan method). Pada kelompok kedua, kita akan melakukan ‘cloning‘ terhadap object yang sudah ada (yang akan jadi parent). Selanjutnya, object baru hasil ‘cloning’ (yang jadi child) bisa kita tambah-tambahi dengan properti baru.

Inilah kedua-belas cara implementasi inheritance di JavaScript (implementasi inheritance sesuai standard ECMAScript adalah yang pertama):

  • Prototype chaining (constructor)
  • Inherit only the prototype (constructor)
  • Temporary constructor (constructor)
  • Copying the prototype properties (constructor)
  • Copy all properties (shallow copy)    (object)
  • Deep copy (object)
  • Prototypal inheritance (object)
  • Extend and augment (object)
  • Multiple inheritance (object)
  • Parasitic inheritance (object)
  • Borrowing constructors (constructor)
  • Borrow a constructor and copy the prototype (constructor)

Pilih yang mana ? Masing-masing tentu punya kelebihan dan kekurangan…

(sumber: Object-Oriented JavaScript, Create scalable, reusable high-quality JavaScript applications, and libraries, Stoyan Stefanov, 2008)

Categories: oop
  1. tukangkabel
    March 24, 2010 at 7:28 am

    “Pilih yang mana ? Masing-masing tentu punya kelebihan dan kekurangan”

    mungkin yang perlu dikaji, Prototype Chaining yang dipakai John Resig pada implementasi jQuery Bu. Apakah penyederhanaan pemanggilan dan pengaitan fungsi tersebut berpengaruh pada tingkat popularitas jQuery bagi pengguna Javascript framework😀

    *ternyata ada juga ya, yang membaca bukunya Stoyan Stefanov*

  2. March 30, 2010 at 12:32 pm

    @tukangkabel:
    Ya, prototype chaining kelihatannya lebih disarankan. Karena ini adalah standard dari ECMAScript juga…

    *ya, buku tsb digunakan sebagai referensi di kuliah OOP*🙂

  1. March 24, 2010 at 8:36 am

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: