Sobes.tech
Middle

Ako funguje systém prototypov v JavaScript?

sobes.tech AI

Odpoveď od AI

V JavaScripte je systém prototypov mechanizmus dedičnosti, v ktorom objekty môžu dediť vlastnosti a metódy od iných objektov.

Každý objekt má vnútornú vlastnosť [[Prototype]] (prístupnú cez __proto__ alebo Object.getPrototypeOf), ktorá odkazuje na iný objekt — prototyp. Ak pri prístupe k vlastnosti objektu nie je vlastnosť nájdená, hľadanie pokračuje v prototypu, potom v prototypu prototypu a tak ďalej, kým sa nedosiahne null.

Toto umožňuje vytváranie reťazcov prototypov a implementáciu dedičnosti bez tried (hoci v moderných verziách JS existuje syntaxa tried, ktorá využíva pod kapotou prototypy).

Príklad:

const zviera = {
  speak() {
    console.log('Zvieratko hovorí');
  }
};

const pes = Object.create(zviera);
pes.bark = function() {
  console.log('Haf!');
};

pes.bark();    // Haf!
pes.speak();   // Zvieratko hovorí (zdedené od zviera)

Takto prototypy umožňujú objektom zdieľať správanie a vlastnosti, čo je základ objektovo orientovaného programovania v JavaScripte.