Prototyper och arv
JavaScript består av objekt men det finns inget som heter klasser. JavaScript är inte ett traditionellt objektorienterat språk och förväxla det därför inte med det som du lärt dig i Java, C++ eller PHP.
Programmeringssättet kallas “Prototype-based programmering” och du kan tjäna på att läsa på om vad som skiljer mellan klass-baserade arv och prototyp-baserad programmering [^7].
Läs gärna Douglas Crockfords artikel om “Prototypal Inheritance in JavaScript”.
Men, detta får vara ämnet för en separat artikel. Nu har du i alla fall hört konceptet och du vet att du inte skall förvänta dig att JavaScript är ett klassiskt objektorienterat språk, det är det inte. Glöm inte det.
Försök inte heller anpassa JavaScript till ditt traditionella objektorienterade tankesätt. Släpp det och lär dig istället kärnan i JavaScript. Anamma det funktionella programmeringssättet tills vidare. Så återkommer vi till prototypbaserad programmering lite senare i kursen.
Från och med JavaScript version 6, ES6, så kommer klasser att finnas med i språket. ES6 släpps 2015 men det kommer ta något år innan webbläsarna har fullt stöd för ES6.
Men oavsett nyheterna i JavaScript 6 så kan det vara en bra idé att släppa sitt klassiska objektorienterade tankesätt och omfamna det mer funktionsorienterade programmeringssättet som JavaScript erbjuder. Iallafall när man går in i språket från början, förutsatt att man inte redan är kunnig i den funktionsorienterade programmeringsparadigmen.