Sobes.tech
Middle

Kā darbojas prototipu sistēma JavaScript?

sobes.tech AI

Atbilde no AI

JavaScript sistēmā prototipu sistēma ir manto mehānisms, kurā objekti var manto īpašības un metodes no citiem objektiem.

Katram objektam ir iekšēja īpašība [[Prototype]] (pieejama caur __proto__ vai Object.getPrototypeOf), kas norāda uz citu objektu — prototipu. Ja piekļūstot īpašībai objektā tā nav atrasta, meklēšana turpinās prototipā, tad prototipa prototipā un tā tālāk, līdz tiek sasniegts null.

Tas ļauj veidot prototipu ķēdes un īstenot mantošanu bez klases (lai gan mūsdienu JS versijās ir klases sintakse, kas izmanto prototipus aizkulisēs).

Piemērs:

const dzīvnieks = {
  speak() {
    console.log('Dzīvnieks runā');
  }
};

const suns = Object.create(dzīvnieks);
suns.bark = function() {
  console.log('Vau!');
};

suns.bark();    // Vau!
suns.speak();   // Dzīvnieks runā (manto no dzīvnieka)

Tādējādi prototipi ļauj objektiem dalīties ar uzvedību un īpašībām, kas ir objektorientētas programmēšanas pamats JavaScript.