Uvod
Prototipsko nasledjivanje (eng. prototypal inheritance) je vrsta nasledjivanja gde objekat nasledjuje svojstva direktno od drugog objekta (ne od nekogo šablona tj. klase). Postoje dva osnovna mehanizma koji omogućavaju prototipsko nasledjivanje:
- Concatenative inheritance
Ovaj proces se zasniva na direktnom kopiranju svojstva jednog ili više objekata u novi objekat. Treba napomenuti da je za kopiranje svojstva neophodno da enumerable deskriptor svojstva bude setovan na true. Ovaj mehanizam je prihvaćen i sa standardom ES2015, uz pomoć metode “Object.assign()”.
123456var o1 = { a: 1, b: 1, c: 1 };var o2 = { b: 2, c: 2 };var o3 = { c: 3 };var velikiObjekat = Object.assign({}, o1, o2, o3);console.log(velikiObjekat); // { a: 1, b: 2, c: 3 } - Prototipsko delegiranje
Ovaj proces se zasniva se na principu da se svojstva i metode nasledjuju kroz “lanac povezanih prototype objekata” (eng. “prototype chain”).
NAPOMENA:
Uokviru standarda ES2015 je predstavljena syntax-a za kreiranje objekata preko klasa, medjutim to je samo estetska promena jer se u pozadini sav posao oko nasledivanja izvršava prema prethodno pomenutom mehanizmu “prototipsko delegiranje”.