OOP
A JavaScript a világ legfélreértettebb programozási nyelve. A leggyakoribb félreértés az, hogy a JavaScript a Sun Microsystems Java nyelvének leegyszerűsített parancsnyelvi változata. Egy egyszerű hasonlattal élve: A JavaScriptnek annyi köze van a Jávához, mint a lónak a lódarázshoz. Bár a JavaScript hasonlít a Java nyelvre, a két nyelvnek nem sok köze van egymáshoz. A Netscape valószínűleg üzleti fogásból nevezte át a LiveScriptparancsnyelvet a ma ismert JavaScriptre.
A modern számítógép-programozás egyik fő vonulata az ún. objektum szemléletű programozás. Az objektumorientált programozásnak (OOP) számos előnye (áttekinthetőbb és könnyebben karbantartható kód, kód újrahasznosíthatóság) van a hagyományos procedurális megközelítéssel szemben, amelyek elsősorban nagyobb projekteknél jelentkeznek. A JavaScript nyelvet sokáig kiforratlannak és primitív programozási nyelvnek tartották. Ez a fejezet ennek az ellenkezőjéről fogja meggyőzni az olvasót.
Némi vita van arról, hogy pontosan mi is kell ahhoz, hogy egy nyelvet objektumorientáltnak minősíthessünk. Azzal viszont valamennyien egyetértünk, hogy egy objektumorientált nyelvből a következők nem hiányozhatnak:
- bezárás (encapsulation)
- a külvilág az objektummal csakis az objektum interfészén keresztül érintkezhet. Az objektum belseje sérthetetlen, belső állapotát kizárólag maga az objektum képes megváltoztatni.
- polimorfizmus (polymorphism)
- egy adott osztályú objektum úgy kezelhető, mintha az valamelyik szülő osztályának példánya lenne.
- öröklődés (inheritance)
- egy osztály örökölhet tulajdonságokat és viselkedésformákat egy másik osztálytól. Az utódosztályban csak az ősostálytól való eltéréseket kell megadni.
- kompozíció
- egy objektum fizikailag tartalmaz vagy birtokol egy másik objektumot.
Bár a JavaScript egy parancsnyelv, az objektumorientált programozást lenyűgözően támogatja. Annak ellenére, hogy JavaScriptben nincsenek osztályok, vannak objektumok és prototípus alapú öröklődés.