Arv i JavaScript

Arv är ett viktigt begrepp inom objektorienterad programmering. I det klassiska arvet kopieras metoder från basklassen till den härledda klassen.

I JavaScript stöds arv genom att använda prototypobjekt. Vissa kallar det ”Prototypal Inheriatance” och andra kallar det ”Behaviour Delegation”.

Vi ska se hur vi kan uppnå en arvsliknande funktionalitet i JavaScript med hjälp av prototypobjekt.

Vi börjar med klassen Person som innehåller egenskapen FirstName & LastName enligt nedan.

I exemplet ovan har vi definierat personklassen (funktion) med FirstName & LastName-egenskaperna och även lagt till getFullName-metoden till dess prototypobjekt.

Nu vill vi skapa klassen Student som ärver från klassen Person så att vi inte behöver omdefiniera FirstName, LastName och metoden getFullName() i klassen Student. Följande är en Student-klass som ärver Person-klassen.

Observera att vi har satt Student.prototype till det nyskapade personobjektet. Nyckelordet new skapar ett objekt av personklassen och tilldelar även Person.prototype till det nya objektets prototypobjekt och tilldelar slutligen det nyskapade objektet till Student.prototype-objektet. Eventuellt kan du också tilldela Person.prototype till Student.prototype-objektet.

Nu kan vi skapa ett Student-objekt som använder personens egenskaper och metoder enligt nedan.

Därmed kan vi implementera arv i JavaScript.