A prototípus egy mechanizmus, amely révén a JavaScript objektumok funkciókat örökölnek egymástól.
A JavaScriptet gyakran nevezik prototípus alapú nyelvnek.
A prototípus segítségével új tulajdonságokkal és metódusokkal egészíthetjük ki az objektumaink konstruktorait.
A String objektum kiterjesztése print() függvénnyel:
String.prototype.print = function() { console.log(this.valueOf()); } let s = 'alma'; s.print();
Másik megoldás:
function printString() { console.log(this.valueOf()); } String.prototype.print = printString; let s = 'alma'; s.print();
A prototype segítségével új tulajdonságot adhatunk az objektumainknak:
function Tanulo(nev, nem) { this.nev = nev; this.nem = nem; } Tanulo.prototype.kor = 15; let peti = new Tanulo(); console.log(peti.kor);
Új metódus hozzáadása az objektumunk számára:
function Dolgozo(nev, telepules, fizetes) { this.nev = nev; this.telepules = telepules; this.fizetes = fizetes; } Dolgozo.prototype.munka = function() { console.log('munka'); } let janos = new Dolgozo('Nagy János', 'Szolnok', 8350000); console.log(janos.nev); janos.munka();
Ha beletesszük a függvénylétrehozást a Dolgozo konstruktorba, minden egyes dolgozó példány esetén külön létrejön a munka() függvény, ami memória pazarlás.