Yani’s Weblog

it’s all about software engineering…

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)

May 19, 2009 - Posted by yaniwid | oop | | No Comments Yet

No comments yet.

Leave a comment